diff --git a/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java b/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java index 613c00a3e..0346611e9 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java @@ -63,6 +63,8 @@ public class CommonConstants { */ public static final String SQUAREBRACKETSRIGHT = "]"; + public static final String PATH_SPILT = "/"; + /** * rocketmq 消息最大重试次数 */ diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/DataSourceEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/DataSourceEnum.java new file mode 100644 index 000000000..5a2211c8b --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/DataSourceEnum.java @@ -0,0 +1,30 @@ +package com.cool.store.enums; + +/** + * @author zhangchenbiao + * @FileName: DataSourceEnum + * @Description: + * @date 2023-06-08 15:34 + */ +public enum DataSourceEnum { + + SYNC(0, "同步"), + CREATE(1, "创建"); + + private Integer code; + + private String message; + + DataSourceEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java index 075f416e8..4cab8192a 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java @@ -2,6 +2,7 @@ package com.cool.store.dao; import com.cool.store.entity.EnterpriseUserDO; import com.cool.store.mapper.EnterpriseUserMapper; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Repository; @@ -26,16 +27,18 @@ public class EnterpriseUserDAO { return enterpriseUserMapper.getUserInfoById(userId); } - public void batchInsertOrUpdate(List collect) { + public void batchInsertOrUpdate(List insertOrUpdateList) { + if(CollectionUtils.isEmpty(insertOrUpdateList)){ + return; + } + enterpriseUserMapper.batchInsertOrUpdate(insertOrUpdateList); } - public void insertEnterpriseUser(EnterpriseUserDO enterpriseUser) { - } - - public void updateEnterpriseUser(EnterpriseUserDO enterpriseUser) { - } - - public List getMainAdminUserIds() { - return null; + /** + * 删除用户 + * @param excludeUserIds + */ + public void deleteUser(List excludeUserIds){ + enterpriseUserMapper.deleteUser(excludeUserIds); } } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserRoleDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserRoleDAO.java index 6263ac311..82c64fb20 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserRoleDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserRoleDAO.java @@ -1,13 +1,10 @@ package com.cool.store.dao; -import com.cool.store.dto.buser.UserRoleDTO; -import com.cool.store.dto.enterprise.EnterpriseUserRole; +import com.cool.store.entity.EnterpriseUserRoleDO; import com.cool.store.entity.SysRoleDO; -import com.cool.store.enums.RoleEnum; +import com.cool.store.enums.DataSourceEnum; import com.cool.store.mapper.EnterpriseUserRoleMapper; -import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.collections4.ListUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Repository; @@ -25,52 +22,18 @@ public class EnterpriseUserRoleDAO { @Resource private EnterpriseUserRoleMapper enterpriseUserRoleMapper; - public Boolean insertBatchUserRole(List userRole) { - return enterpriseUserRoleMapper.insertBatchUserRole(userRole); - } - - public List getUserAndRolesByUserId(List userIdList){ - if(CollectionUtils.isEmpty(userIdList)){ - return Lists.newArrayList(); - } - return enterpriseUserRoleMapper.getUserAndRolesByUserId(userIdList); - } - - public Boolean checkIsAdmin(String userId) { - // 1.取出所有用户角色 - // 2.匹配是否有管理员角色 - List sysRoleDOList = enterpriseUserRoleMapper.listRoleByUserId(userId); - return ListUtils.emptyIfNull(sysRoleDOList) - .stream() - .anyMatch(role-> StringUtils.equals(RoleEnum.MASTER.getRoleEnum(),role.getRoleEnum())); - } - - public void deleteBatchByPrimaryKey(List ids){ - if(CollectionUtils.isEmpty(ids)){ - return; - } - enterpriseUserRoleMapper.deleteBatchByPrimaryKey(ids); - } - - public List selectIdsByUserId(String userId){ - if(StringUtils.isAnyBlank(userId)){ - return Lists.newArrayList(); - } - return enterpriseUserRoleMapper.selectIdsByUserId(userId); - } - - public EnterpriseUserRole selectByUserIdAndRoleId(String userId, String roleId){ - if(StringUtils.isAnyBlank(userId, roleId)){ + public Integer batchInsertOrUpdate(List recordList){ + if(CollectionUtils.isEmpty(recordList)){ return null; } - return enterpriseUserRoleMapper.selectByUserIdAndRoleId(userId, roleId); + return enterpriseUserRoleMapper.batchInsertOrUpdate(recordList); } - public void save( EnterpriseUserRole entity){ - if(Objects.isNull(entity)){ - return; + public Integer deleteUserRole(String roleId, DataSourceEnum dataSourceEnum, List userIds){ + if(StringUtils.isBlank(roleId) || Objects.isNull(dataSourceEnum)){ + return null; } - enterpriseUserRoleMapper.save(entity); + return enterpriseUserRoleMapper.deleteUserRole(roleId, dataSourceEnum.getCode(), userIds); } } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/LoginRecordDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/LoginRecordDAO.java deleted file mode 100644 index 1c7bd4b1c..000000000 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/LoginRecordDAO.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.cool.store.dao; - -import com.cool.store.entity.LoginRecordDO; -import com.cool.store.mapper.LoginRecordMapper; -import org.springframework.stereotype.Repository; - -import javax.annotation.Resource; - -/** - * @author zhangchenbiao - * @FileName: LoginRecordDAO - * @Description: - * @date 2023-05-23 15:48 - */ -@Repository -public class LoginRecordDAO { - - @Resource - private LoginRecordMapper loginRecordMapper; - - public void addLoginRecord(String userId){ - LoginRecordDO record = new LoginRecordDO(); - record.setUserId(userId); - record.setCreateTime(System.currentTimeMillis()); - loginRecordMapper.insertSelective(record); - } - -} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java index e3524a7e2..79197a5f8 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java @@ -1,25 +1,19 @@ package com.cool.store.dao; import com.cool.store.constants.CommonConstants; -import com.cool.store.dto.region.RegionNode; -import com.cool.store.dto.region.RegionPathDTO; -import com.cool.store.dto.region.RegionSyncDTO; import com.cool.store.entity.RegionDO; -import com.cool.store.enums.RegionTypeEnum; import com.cool.store.mapper.RegionMapper; -import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.collections4.ListUtils; -import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Repository; import javax.annotation.Resource; -import java.util.*; -import java.util.stream.Collectors; +import java.util.List; /** * @author zhangchenbiao - * @date 2023-05-19 02:59 + * @FileName: RegionDAO + * @Description: + * @date 2023-06-07 14:22 */ @Repository public class RegionDAO { @@ -27,136 +21,20 @@ public class RegionDAO { @Resource private RegionMapper regionMapper; - public List getRegionIdsBySynDingDeptIds(List synDingDeptIds) { - if (CollectionUtils.isEmpty(synDingDeptIds)) { - return new ArrayList<>(); + /** + * 插入或者更新组织架构 + * @param insertOrUpdateList + * @return + */ + public Integer batchInsertOrUpdate(List insertOrUpdateList){ + if(CollectionUtils.isEmpty(insertOrUpdateList)){ + return CommonConstants.ZERO; } - return regionMapper.selectRegionIdsBySynDingDeptIds(synDingDeptIds); + return regionMapper.batchInsertOrUpdate(insertOrUpdateList); } - public List getRegionByRegionIds(List regionIds) { - if(CollectionUtils.isEmpty(regionIds)){ - return Collections.emptyList(); - } - return regionMapper.getRegionByRegionIds(regionIds); + public Integer deleteNotExistRegion(List regionIds){ + return regionMapper.deleteNotExistRegion(regionIds); } - public RegionDO getUnclassifiedRegionDO() { - //先查询是否存在未分组区域 - RegionDO unclassified = regionMapper.getUnclassifiedRegionDO(CommonConstants.UNGROUPED_DEPT_NAME); - if (Objects.isNull(unclassified)) { - RegionDO regionDO = new RegionDO(); - regionDO.setId(CommonConstants.UNGROUPED_DEPT_ID); - regionDO.setParentId(CommonConstants.ROOT_DEPT_ID_STR); - regionDO.setName(CommonConstants.UNGROUPED_DEPT_NAME); - regionDO.setRegionType(RegionTypeEnum.PATH.getType()); - regionDO.setCreateName(CommonConstants.SYSTEM_USER_ID); - regionDO.setCreateTime(Calendar.getInstance().getTimeInMillis()); - regionDO.setRegionPath("/" + CommonConstants.ROOT_DEPT_ID_STR + "/"); - regionDO.setUnclassifiedFlag(CommonConstants.ONE); - insertRegion(regionDO); - regionDO.setRegionId(regionDO.getId().toString()); - return regionDO; - } - return unclassified; - } - - public Long insertRegion(RegionDO regionDO) { - return regionMapper.insertRoot(regionDO); - } - - public void batchInsertRegions(List regionDOList){ - regionMapper.batchInsertRegionsByDepartments(regionDOList); - } - - - public Map getRegionSynDeptIdAndIdMapping(List syncDeptIds){ - List regionDOS = regionMapper.selectRegionBySynDingDeptIds(syncDeptIds); - return ListUtils.emptyIfNull(regionDOS) - .stream() - .collect(Collectors.toMap(RegionDO::getSynDingDeptId, RegionDO::getId, (r, e) -> r)); - } - - public List getAllRegion(){ - return regionMapper.getAllRegion(); - } - - public List listStoreRegionByIds(List regionIds){ - if(CollectionUtils.isEmpty(regionIds)){ - return Lists.newArrayList(); - } - return regionMapper.listStoreRegionByIds(regionIds); - } - - public List getRegionPathByList(List regionIds) { - List regionList = regionMapper.getRegionByRegionIds(regionIds); - return ListUtils.emptyIfNull(regionList) - .stream() - .map(data->{ - RegionPathDTO regionPathDTO =new RegionPathDTO(); - regionPathDTO.setRegionId(data.getRegionId()); - regionPathDTO.setRegionPath(data.getFullRegionPath()); - regionPathDTO.setRegionName(data.getName()); - regionPathDTO.setStoreNum(data.getStoreNum() == null? 0 : data.getStoreNum()); - regionPathDTO.setRegionType(data.getRegionType()); - return regionPathDTO; - }).collect(Collectors.toList()); - } - - public RegionDO getByRegionId(Long regionId){ - if(Objects.isNull(regionId)){ - return null; - } - return regionMapper.getByRegionId(regionId); - } - - public RegionNode getRegionById(String regionId){ - return regionMapper.getRegionByRegionId(regionId); - } - - public void insertOrUpdate(RegionDO regionDO){ - regionMapper.insertOrUpdate(regionDO); - } - - public List getSpecifiedRegionIdAndDeptId(Long parentId){ - return regionMapper.getSpecifiedRegionIdAndDeptId(parentId); - } - - public List getRegionByDingDeptIds(List dingDeptIds){ - if(CollectionUtils.isEmpty(dingDeptIds)){ - return Lists.newArrayList(); - } - return regionMapper.getRegionByDingDeptIds(dingDeptIds); - } - - public RegionDO getBySynDingDeptId(String synDingDeptId){ - if(StringUtils.isAnyBlank(synDingDeptId)){ - return null; - } - return regionMapper.getBySynDingDeptId(synDingDeptId); - } - - public Long ignoreInsert(RegionDO regionDO) { - if(Objects.isNull(regionDO)){ - return 0L; - } - return regionMapper.ignoreInsert(regionDO); - } - - public Integer updateSyncRegion(RegionDO regionDO){ - if(Objects.isNull(regionDO)){ - return 0; - } - return regionMapper.updateSyncRegion(regionDO); - } - - public void removeRegion(List regionIds) { - if (regionIds.contains(CommonConstants.UNGROUPED_DEPT_ID)) { - regionIds.remove(CommonConstants.UNGROUPED_DEPT_ID); - } - if(CollectionUtils.isEmpty(regionIds)) { - return; - } - regionMapper.removeRegions(regionIds); - } -} \ No newline at end of file +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/SysDepartmentDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/SysDepartmentDAO.java deleted file mode 100644 index b9ed02a2e..000000000 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/SysDepartmentDAO.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.cool.store.dao; - -import com.cool.store.dto.dept.SyncTreeNode; -import com.cool.store.dto.enterprise.QueryDeptChildDTO; -import com.cool.store.entity.SysDepartmentDO; -import com.cool.store.mapper.SysDepartmentMapper; -import com.google.common.collect.Lists; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Repository; - -import javax.annotation.Resource; -import java.util.List; - -/** - * @author zhangchenbiao - * @date 2023-05-19 03:00 - */ -@Repository -public class SysDepartmentDAO { - - @Resource - private SysDepartmentMapper sysDepartmentMapper; - - public void batchInsertOrUpdate(List deptList){ - if(CollectionUtils.isEmpty(deptList)){ - return; - } - sysDepartmentMapper.batchInsertOrUpdate(deptList); - } - - public List getDeptChildListByParentId(String parentId){ - if(StringUtils.isAnyBlank(parentId)){ - return Lists.newArrayList(); - } - return sysDepartmentMapper.getDeptChildListByParentId(parentId); - } - - public void deleteByNotInIds(List deptIds){ - if(CollectionUtils.isEmpty(deptIds)){ - return; - } - sysDepartmentMapper.deleteByNotInIds(deptIds); - } - - public List getSyncDeptTreeList() { - return sysDepartmentMapper.getSyncDeptTreeList(); - } - - public List selectAllDepts(){ - return sysDepartmentMapper.selectAll(); - } -} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/SysRoleDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/SysRoleDAO.java index 91b799535..024fa9975 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/SysRoleDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/SysRoleDAO.java @@ -1,16 +1,21 @@ package com.cool.store.dao; import com.cool.store.entity.SysRoleDO; -import com.cool.store.enums.RoleEnum; +import com.cool.store.enums.DataSourceEnum; import com.cool.store.mapper.SysRoleMapper; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Repository; import javax.annotation.Resource; +import java.util.List; +import java.util.Objects; /** * @author zhangchenbiao - * @date 2023-05-19 03:00 + * @FileName: SysRoleDAO + * @Description: + * @date 2023-06-08 11:45 */ @Repository public class SysRoleDAO { @@ -18,26 +23,24 @@ public class SysRoleDAO { @Resource private SysRoleMapper sysRoleMapper; - /** - * 获取高优先级的角色 - * @param enterpriseId - * @param userId - * @return - */ - public SysRoleDO getHighestPrioritySysRoleDoByUserId(String userId){ - if(StringUtils.isAnyBlank(userId)){ + public Integer batchInsertSelective(List insertOrUpdateList){ + if(CollectionUtils.isEmpty(insertOrUpdateList)){ return null; } - return sysRoleMapper.getHighestPrioritySysRoleDoByUserId(userId); + return sysRoleMapper.batchInsertSelective(insertOrUpdateList); } - public Long getRoleIdByRoleEnum(String roleEnum) { - - SysRoleDO roleByRoleEnum = sysRoleMapper.getRoleByRoleEnum(roleEnum); - if(roleByRoleEnum==null){ - return Long.valueOf(RoleEnum.getByCode(roleEnum).getId()); + public Integer deleteRole(DataSourceEnum dataSourceEnum, List roleIds){ + if(Objects.isNull(dataSourceEnum) || CollectionUtils.isEmpty(roleIds)){ + return null; } - return roleByRoleEnum.getId(); + return sysRoleMapper.deleteRole(dataSourceEnum.getCode(), roleIds); } -} \ No newline at end of file + public SysRoleDO getHighestPriorityRoleByUserId(String userId) { + if(StringUtils.isBlank(userId)){ + return null; + } + return sysRoleMapper.getHighestPriorityRoleByUserId(userId); + } +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java index 9f7ce6fea..e563c3b73 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java @@ -1,18 +1,21 @@ package com.cool.store.dao; import com.cool.store.entity.UserRegionMappingDO; +import com.cool.store.enums.DataSourceEnum; import com.cool.store.mapper.UserRegionMappingMapper; -import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Repository; import javax.annotation.Resource; import java.util.List; -import java.util.stream.Collectors; +import java.util.Objects; /** * @author zhangchenbiao - * @date 2023-05-19 03:00 + * @FileName: UserRegionMappingDAO + * @Description: + * @date 2023-06-08 13:58 */ @Repository public class UserRegionMappingDAO { @@ -20,43 +23,18 @@ public class UserRegionMappingDAO { @Resource private UserRegionMappingMapper userRegionMappingMapper; - - public void deletedByUserIds(List userIds){ - if (CollectionUtils.isEmpty(userIds)) { - return; + public Integer batchInsertOrUpdateUserRegion(List insertOrUpdateList){ + if(CollectionUtils.isEmpty(insertOrUpdateList)){ + return null; } - List distinctData = userIds.stream() - .distinct() - .collect(Collectors.toList()); - userRegionMappingMapper.deletedByUserIds(distinctData); + return userRegionMappingMapper.batchInsertOrUpdateUserRegion(insertOrUpdateList); } - public void batchInsertRegionMapping(List userRegionMappingDOS){ - if (CollectionUtils.isEmpty(userRegionMappingDOS)) { - return; + public Integer deleteUserRegion(String regionId, DataSourceEnum dataSourceEnum, List excludeUserIds){ + if(StringUtils.isBlank(regionId) || Objects.isNull(dataSourceEnum)){ + return null; } - List distinctData = userRegionMappingDOS.stream() - .distinct() - .collect(Collectors.toList()); - userRegionMappingMapper.batchInsertRegionMapping(distinctData); + return userRegionMappingMapper.deleteUserRegion(regionId, dataSourceEnum.getCode(), excludeUserIds); } - - public List listUserRegionMappingByUserId(List userIds){ - if(CollectionUtils.isEmpty(userIds)){ - return Lists.newArrayList(); - } - return userRegionMappingMapper.listUserRegionMappingByUserId(userIds); - } - - public void deletedByIds(List ids){ - if (CollectionUtils.isEmpty(ids)) { - return; - } - List distinctData = ids.stream() - .distinct() - .collect(Collectors.toList()); - userRegionMappingMapper.deletedByIds(distinctData); - } - -} \ No newline at end of file +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java index f2088eb1b..8dff9cfcb 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java @@ -3,6 +3,8 @@ package com.cool.store.mapper; import com.cool.store.entity.EnterpriseUserDO; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * @author zhangchenbiao * @date 2023-06-06 02:29 @@ -14,7 +16,7 @@ public interface EnterpriseUserMapper { * 会对传进来的字段做判空处理,如果字段为空,则使用数据库默认字段或者null * dateTime:2023-06-06 02:29 */ - int insertSelective(EnterpriseUserDO record); + int batchInsertOrUpdate(@Param("recordList") List recordList); /** * @@ -29,4 +31,11 @@ public interface EnterpriseUserMapper { * @return */ EnterpriseUserDO getUserInfoById(@Param("userId") String userId); + + /** + * 删除用户 + * @param excludeUserIds + * @return + */ + int deleteUser(@Param("excludeUserIds") List excludeUserIds); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserRoleMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserRoleMapper.java index f8defbe0d..e253b42fe 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserRoleMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserRoleMapper.java @@ -1,50 +1,36 @@ package com.cool.store.mapper; -import com.cool.store.dto.buser.UserRoleDTO; -import com.cool.store.dto.enterprise.EnterpriseUserRole; import com.cool.store.entity.EnterpriseUserRoleDO; -import com.cool.store.entity.SysRoleDO; import org.apache.ibatis.annotations.Param; import java.util.List; /** * @author zhangchenbiao - * @date 2023-05-19 02:59 + * @date 2023-06-08 10:54 */ public interface EnterpriseUserRoleMapper { /** * * 默认插入方法,只会给有值的字段赋值 * 会对传进来的字段做判空处理,如果字段为空,则使用数据库默认字段或者null - * dateTime:2023-05-19 02:59 + * dateTime:2023-06-08 10:54 */ - int insertSelective(@Param("record") EnterpriseUserRoleDO record); + int batchInsertOrUpdate(@Param("recordList") List recordList); /** * * 默认更新方法,根据主键更新,不会把null值更新到数据库,避免覆盖之前有值的 - * dateTime:2023-05-19 02:59 + * dateTime:2023-06-08 10:54 */ - int updateByPrimaryKeySelective(@Param("record") EnterpriseUserRoleDO record); + int updateByPrimaryKeySelective(EnterpriseUserRoleDO record); /** - * 批量插入用户角色 - * @param enterpriseId - * @param userRoles + * 删除用户角色 + * @param roleId + * @param type + * @param userIds * @return */ - Boolean insertBatchUserRole(@Param("userRoles") List userRoles); - - List getUserAndRolesByUserId(@Param("userIdList") List userIdList); - - List listRoleByUserId(@Param("userId") String userId); - - void deleteBatchByPrimaryKey(@Param("ids") List ids); - - List selectIdsByUserId(@Param("userId") String userId); - - EnterpriseUserRole selectByUserIdAndRoleId(@Param("userId") String userId, @Param("roleId") String roleId); - - void save(@Param("entity") EnterpriseUserRole entity); + int deleteUserRole(@Param("roleId") String roleId, @Param("type") Integer type, @Param("userIds") List userIds); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LoginRecordMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LoginRecordMapper.java deleted file mode 100644 index 6a3333556..000000000 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LoginRecordMapper.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.cool.store.mapper; - -import com.cool.store.entity.LoginRecordDO; -import org.apache.ibatis.annotations.Param; - -/** - * @author zhangchenbiao - * @date 2023-05-23 03:46 - */ -public interface LoginRecordMapper { - /** - * - * 默认插入方法,只会给有值的字段赋值 - * 会对传进来的字段做判空处理,如果字段为空,则使用数据库默认字段或者null - * dateTime:2023-05-23 03:46 - */ - int insertSelective(@Param("record") LoginRecordDO record); - - /** - * - * 默认更新方法,根据主键更新,不会把null值更新到数据库,避免覆盖之前有值的 - * dateTime:2023-05-23 03:46 - */ - int updateByPrimaryKeySelective(@Param("record") LoginRecordDO record); -} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java index 4f0ef45c0..05ed9c199 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java @@ -1,7 +1,5 @@ package com.cool.store.mapper; -import com.cool.store.dto.region.RegionNode; -import com.cool.store.dto.region.RegionSyncDTO; import com.cool.store.entity.RegionDO; import org.apache.ibatis.annotations.Param; @@ -9,57 +7,28 @@ import java.util.List; /** * @author zhangchenbiao - * @date 2023-05-19 02:59 + * @date 2023-06-07 02:07 */ public interface RegionMapper { - /** - * - * 默认插入方法,只会给有值的字段赋值 - * 会对传进来的字段做判空处理,如果字段为空,则使用数据库默认字段或者null - * dateTime:2023-05-19 02:59 - */ - int insertSelective(@Param("record") RegionDO record); /** * * 默认更新方法,根据主键更新,不会把null值更新到数据库,避免覆盖之前有值的 - * dateTime:2023-05-19 02:59 + * dateTime:2023-06-07 02:07 */ - int updateByPrimaryKeySelective(@Param("record") RegionDO record); + int updateByPrimaryKeySelective(RegionDO record); - List selectRegionIdsBySynDingDeptIds(@Param("synDingDeptIds") List synDingDeptIds); - - List getRegionByRegionIds( @Param("regionIds") List regionIds); - - - RegionDO getUnclassifiedRegionDO(@Param("name")String name); - - Long insertRoot(@Param("region") RegionDO regionDO); - - Integer batchInsertRegionsByDepartments(@Param("regions") List regions); - - List selectRegionBySynDingDeptIds(@Param("synDingDeptIds") List synDingDeptIds); - - List getAllRegion(); - - List listStoreRegionByIds(@Param("regionIds")List regionIds); - - RegionDO getByRegionId(@Param("regionId") Long regionId); - - RegionNode getRegionByRegionId(@Param("regionId") String regionId); - - Integer insertOrUpdate(@Param("record") RegionDO regionDO); - - List getSpecifiedRegionIdAndDeptId(@Param("parentId") Long parentId); - - List getRegionByDingDeptIds(@Param("list")List dingDeptIds); - - RegionDO getBySynDingDeptId(@Param("synDingDeptId") String synDingDeptId); - - Long ignoreInsert(@Param("region") RegionDO regionDO); - - Integer updateSyncRegion(@Param("item")RegionDO regionDO); - - Integer removeRegions(@Param("regionIds") List regionIds); + /** + * 批量新增或者更新 + * @param insertOrUpdateList + * @return + */ + int batchInsertOrUpdate(@Param("insertOrUpdateList") List insertOrUpdateList); + /** + * 删除不存在的区域 + * @param regionIds + * @return + */ + int deleteNotExistRegion(@Param("regionIds")List regionIds); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysDepartmentMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysDepartmentMapper.java deleted file mode 100644 index cc0720875..000000000 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysDepartmentMapper.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.cool.store.mapper; - -import com.cool.store.dto.dept.SyncTreeNode; -import com.cool.store.dto.enterprise.QueryDeptChildDTO; -import com.cool.store.entity.SysDepartmentDO; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * @author zhangchenbiao - * @date 2023-05-19 03:00 - */ -public interface SysDepartmentMapper { - /** - * - * 默认插入方法,只会给有值的字段赋值 - * 会对传进来的字段做判空处理,如果字段为空,则使用数据库默认字段或者null - * dateTime:2023-05-19 03:00 - */ - int insertSelective(@Param("record") SysDepartmentDO record); - - /** - * - * 默认更新方法,根据主键更新,不会把null值更新到数据库,避免覆盖之前有值的 - * dateTime:2023-05-19 03:00 - */ - int updateByPrimaryKeySelective(@Param("record") SysDepartmentDO record); - - void batchInsertOrUpdate(@Param("list") List sysDepartmentDOList); - - List getDeptChildListByParentId(@Param("parentId") String parentId); - - void deleteByNotInIds(@Param("list") List deptIdList); - - List getSyncDeptTreeList(); - - List selectAll(); -} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java index 91b75b978..e202d6ebb 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java @@ -7,29 +7,30 @@ import java.util.List; /** * @author zhangchenbiao - * @date 2023-05-19 03:00 + * @date 2023-06-07 02:07 */ public interface UserRegionMappingMapper { /** * * 默认插入方法,只会给有值的字段赋值 * 会对传进来的字段做判空处理,如果字段为空,则使用数据库默认字段或者null - * dateTime:2023-05-19 03:00 + * dateTime:2023-06-07 02:07 */ - int insertSelective(@Param("record") UserRegionMappingDO record); + int batchInsertOrUpdateUserRegion(@Param("insertOrUpdateList") List insertOrUpdateList); /** * * 默认更新方法,根据主键更新,不会把null值更新到数据库,避免覆盖之前有值的 - * dateTime:2023-05-19 03:00 + * dateTime:2023-06-07 02:07 */ - int updateByPrimaryKeySelective(@Param("record") UserRegionMappingDO record); + int updateByPrimaryKeySelective(UserRegionMappingDO record); - void batchInsertRegionMapping(@Param("userRegionMappingDOS") List userRegionMappingDOS); - - void deletedByUserIds(@Param("userIds") List userIds); - - List listUserRegionMappingByUserId(@Param("userIds") List userIds); - - void deletedByIds(@Param("ids") List ids); + /** + * 删除用户区域 + * @param regionId + * @param type + * @param excludeUserIds + * @return + */ + int deleteUserRegion(@Param("regionId") String regionId, @Param("type")Integer type, @Param("excludeUserIds") List excludeUserIds); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml index c03c1f787..f7e7d712d 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml @@ -12,10 +12,10 @@ - + @@ -27,132 +27,143 @@ id, user_id, name, remark, mobile, email, org_email, main_admin, is_admin, unionid, - position, avatar, jobnumber, is_leader, face_url, user_status, deleted, create_time, + avatar, jobnumber, is_leader, leader_dept_ids, face_url, user_status, deleted, create_time, update_time user_region_ids - - insert into enterprise_user - - - user_id, - - - name, - - - remark, - - - mobile, - - - email, - - - org_email, - - - main_admin, - - - is_admin, - - - unionid, - - - position, - - - avatar, - - - jobnumber, - - - is_leader, - - - face_url, - - - user_status, - - - deleted, - - - create_time, - - - update_time, - - - user_region_ids, - - - - - #{userId}, - - - #{name}, - - - #{remark}, - - - #{mobile}, - - - #{email}, - - - #{orgEmail}, - - - #{mainAdmin}, - - - #{isAdmin}, - - - #{unionid}, - - - #{position}, - - - #{avatar}, - - - #{jobnumber}, - - - #{isLeader}, - - - #{faceUrl}, - - - #{userStatus}, - - - #{deleted}, - - - #{createTime}, - - - #{updateTime}, - - - #{userRegionIds}, - - + + + insert into enterprise_user + + + id, + + + user_id, + + + name, + + + remark, + + + mobile, + + + email, + + + org_email, + + + main_admin, + + + is_admin, + + + unionid, + + + avatar, + + + jobnumber, + + + is_leader, + + + leader_dept_ids, + + + face_url, + + + user_status, + + + deleted, + + + create_time, + + + update_time, + + + user_region_ids, + + + + + #{record.id}, + + + #{record.userId}, + + + #{record.name}, + + + #{record.remark}, + + + #{record.mobile}, + + + #{record.email}, + + + #{record.orgEmail}, + + + #{record.mainAdmin}, + + + #{record.isAdmin}, + + + #{record.unionid}, + + + #{record.avatar}, + + + #{record.jobnumber}, + + + #{record.isLeader}, + + + #{record.leaderDeptIds}, + + + #{record.faceUrl}, + + + #{record.userStatus}, + + + #{record.deleted}, + + + #{record.createTime}, + + + #{record.updateTime}, + + + #{record.userRegionIds}, + + + ON DUPLICATE KEY UPDATE user_id = values(user_id), name = values(name), remark = values(remark), mobile = values(mobile), email = values(email), org_email = values(org_email) + , main_admin = values(main_admin), is_admin = values(is_admin), unionid = values(unionid), avatar = values(avatar), jobnumber = values(jobnumber), is_leader = values(is_leader) + , leader_dept_ids = values(leader_dept_ids), face_url = values(face_url), user_status = values(user_status), user_region_ids = values(user_region_ids) + update enterprise_user @@ -184,9 +195,6 @@ unionid = #{unionid}, - - position = #{position}, - avatar = #{avatar}, @@ -196,6 +204,9 @@ is_leader = #{isLeader}, + + leader_dept_ids = #{record.leaderDeptIds}, + face_url = #{faceUrl}, @@ -220,10 +231,15 @@ + + + update enterprise_user set deleted = 1 where id in #{userId} + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserRoleMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserRoleMapper.xml index e8de8ff07..96746e319 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserRoleMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserRoleMapper.xml @@ -3,134 +3,78 @@ - + + - id, role_id, user_id, create_time, update_time + id, role_id, user_id, deleted, create_time, update_time - - insert into enterprise_user_role - - + + + insert into enterprise_user_role + + role_id, - - + + user_id, - - + + + deleted, + + create_time, - - + + update_time, - - - - + + + + #{record.roleId}, - - + + #{record.userId}, - - + + + #{record.deleted}, + + #{record.createTime}, - - + + #{record.updateTime}, - - + + + ON DUPLICATE KEY UPDATE deleted = values(deleted) + update enterprise_user_role - - role_id = #{record.roleId}, + + role_id = #{roleId}, - - user_id = #{record.userId}, + + user_id = #{userId}, - - create_time = #{record.createTime}, + + deleted = #{deleted}, - - update_time = #{record.updateTime}, + + create_time = #{createTime}, + + + update_time = #{updateTime}, - where id = #{record.id} + where id = #{id} + + + + update enterprise_user_role set deleted = 1 where role_id = #{roleId} and user_id not in #{userId} - - - insert ignore into enterprise_user_role - (role_id, user_id ,create_time) - values - - (#{userRole.roleId}, #{userRole.userId} ,#{userRole.createTime}) - - - - - - - - - delete from enterprise_user_role where id in - - #{id} - - - - - - - - - insert ignore into enterprise_user_role - ( - `role_id`, - `user_id`, - `create_time` - ) - values - ( - #{entity.roleId}, - #{entity.userId}, - #{entity.createTime} - ) - \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/LoginRecordMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/LoginRecordMapper.xml deleted file mode 100644 index 2c1650a4e..000000000 --- a/coolstore-partner-dao/src/main/resources/mapper/LoginRecordMapper.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - id, user_id, create_time - - - insert into login_record - - - user_id, - - - create_time, - - - - - #{record.userId}, - - - #{record.createTime}, - - - - - update login_record - - - user_id = #{record.userId}, - - - create_time = #{record.createTime}, - - - where id = #{record.id} - - \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml index 3a145553e..afa51f5cb 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml @@ -5,585 +5,157 @@ - - + + + + + + - - - - - - - - - - id, region_id, name, parent_id, group_id, create_time, create_name, update_time, - update_name, vds_group_corp_id, syn_ding_dept_id, region_type, region_path, deleted, - store_num, store_id, unclassified_flag, order_num, third_dept_id + id, region_id, name, parent_id, region_path, unclassified_flag, leader_user_id, order_num, + third_dept_id, create_time, create_name, update_time, update_name, deleted - - insert into region - - - region_id, - - - name, - - - parent_id, - - - group_id, - - - create_time, - - - create_name, - - - update_time, - - - update_name, - - - vds_group_corp_id, - - - syn_ding_dept_id, - - - region_type, - - - region_path, - - - deleted, - - - store_num, - - - store_id, - - - unclassified_flag, - - - order_num, - - - third_dept_id, - - - - - #{record.regionId}, - - - #{record.name}, - - - #{record.parentId}, - - - #{record.groupId}, - - - #{record.createTime}, - - - #{record.createName}, - - - #{record.updateTime}, - - - #{record.updateName}, - - - #{record.vdsGroupCorpId}, - - - #{record.synDingDeptId}, - - - #{record.regionType}, - - - #{record.regionPath}, - - - #{record.deleted}, - - - #{record.storeNum}, - - - #{record.storeId}, - - - #{record.unclassifiedFlag}, - - - #{record.orderNum}, - - - #{record.thirdDeptId}, - - + + + insert into region + + + region_id, + + + name, + + + parent_id, + + + region_path, + + + unclassified_flag, + + + leader_user_id, + + + order_num, + + + third_dept_id, + + + create_time, + + + create_name, + + + update_time, + + + update_name, + + + deleted, + + + + + #{record.regionId}, + + + #{record.name}, + + + #{record.parentId}, + + + #{record.regionPath}, + + + #{record.unclassifiedFlag}, + + + #{record.leaderUserId}, + + + #{record.orderNum}, + + + #{record.thirdDeptId}, + + + #{record.createTime}, + + + #{record.createName}, + + + #{record.updateTime}, + + + #{record.updateName}, + + + #{record.deleted}, + + + ON DUPLICATE KEY UPDATE region_id = values(region_id), name = values(name), parent_id = values(parent_id), region_path = values(region_path), leader_user_id = values(leader_user_id), order_num = values(order_num), third_dept_id = values(third_dept_id), update_time = UNIX_TIMESTAMP(), deleted = values(deleted) + update region - - region_id = #{record.regionId}, + + region_id = #{regionId}, - - name = #{record.name}, + + name = #{name}, - - parent_id = #{record.parentId}, + + parent_id = #{parentId}, - - group_id = #{record.groupId}, + + region_path = #{regionPath}, - - create_time = #{record.createTime}, + + unclassified_flag = #{unclassifiedFlag}, - - create_name = #{record.createName}, + + leader_user_id = #{leaderUserId}, - - update_time = #{record.updateTime}, + + order_num = #{orderNum}, - - update_name = #{record.updateName}, + + third_dept_id = #{thirdDeptId}, - - vds_group_corp_id = #{record.vdsGroupCorpId}, + + create_time = #{createTime}, - - syn_ding_dept_id = #{record.synDingDeptId}, + + create_name = #{createName}, - - region_type = #{record.regionType}, + + update_time = #{updateTime}, - - region_path = #{record.regionPath}, + + update_name = #{updateName}, - - deleted = #{record.deleted}, - - - store_num = #{record.storeNum}, - - - store_id = #{record.storeId}, - - - unclassified_flag = #{record.unclassifiedFlag}, - - - order_num = #{record.orderNum}, - - - third_dept_id = #{record.thirdDeptId}, + + deleted = #{deleted}, - where id = #{record.id} + where id = #{id} - - - - - - - - - insert ignore into region - ( - id, - region_id, - name, - parent_id, - group_id, - create_time, - syn_ding_dept_id, - create_name, - region_type, - region_path, - store_num, - unclassified_flag) - values - ( - #{region.id, jdbcType=BIGINT}, - #{region.regionId, jdbcType=VARCHAR}, - #{region.name, jdbcType=VARCHAR}, - #{region.parentId, jdbcType=VARCHAR}, - #{region.groupId, jdbcType=VARCHAR}, - #{region.createTime, jdbcType=BIGINT}, - #{region.synDingDeptId, jdbcType=VARCHAR}, - #{region.createName, jdbcType=VARCHAR}, - #{region.regionType, jdbcType=VARCHAR}, - #{region.regionPath}, - #{region.storeNum}, - #{region.unclassifiedFlag} - ) - - - - insert into region - ( - id, - name, - parent_id, - group_id, - create_time, - syn_ding_dept_id, - region_path, - region_type, - order_num, - create_name, - store_id - ) - values - - ( - #{region.id}, - #{region.name}, - #{region.parentId}, - #{region.groupId}, - #{region.createTime}, - #{region.synDingDeptId}, - #{region.regionPath}, - #{region.regionType}, - #{region.orderNum}, - #{region.createName}, - #{region.storeId} - ) - - ON DUPLICATE KEY UPDATE - name=values(name), parent_id=values(parent_id), region_path=values(region_path),region_type=values(region_type),order_num=values(order_num) - - - - - - - - - - - - - - insert into region - ( - id, - name, - - parent_id, - - region_type, - create_time, - syn_ding_dept_id, - unclassified_flag, - third_dept_id - ) value - ( - #{record.id, jdbcType=BIGINT}, - #{record.name, jdbcType=VARCHAR}, - - #{record.parentId, jdbcType=BIGINT}, - - #{record.regionType, jdbcType=VARCHAR}, - #{record.createTime, jdbcType=BIGINT}, - #{record.synDingDeptId, jdbcType=VARCHAR}, - #{record.unclassifiedFlag}, - #{record.thirdDeptId} - ) - ON DUPLICATE KEY UPDATE name=values(name), parent_id=values(parent_id), syn_ding_dept_id=values(syn_ding_dept_id),third_dept_id=values(third_dept_id), - update_time = values(update_time), region_type = values(region_type), deleted = values(deleted) - - - - - - - - - - insert ignore into region - ( - region_id, - name, - parent_id, - group_id, - create_time, - create_name - - ,region_path - - - ,region_type - - - ,store_id - - - ,syn_ding_dept_id - - ,order_num - ) - values - ( - #{region.regionId, jdbcType=VARCHAR}, - #{region.name, jdbcType=VARCHAR}, - #{region.parentId, jdbcType=VARCHAR}, - #{region.groupId, jdbcType=VARCHAR}, - #{region.createTime, jdbcType=BIGINT}, - #{region.createName, jdbcType=VARCHAR} - - ,#{region.regionPath} - - - ,#{region.regionType} - - - ,#{region.storeId} - - - ,#{region.synDingDeptId} - - ,(SELECT max(order_num)+1 FROM region AS num) - ) - - - - update region - set `parent_id` = #{item.parentId}, - `name` = #{item.name}, - - `region_type` = #{item.regionType}, - - `deleted` = #{item.deleted}, - `update_time` = #{item.updateTime}, - - store_id = #{item.storeId}, - - `region_path` = #{item.regionPath} - where id = #{item.id} - - - - update region - set - deleted = 1, - parent_id = -1 - where id in - - #{regionId, jdbcType=BIGINT} - - and id != 1 + + update region set deleted = 1 , update_time = UNIX_TIMESTAMP() where region_id not in #{regionId} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/SysDepartmentMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/SysDepartmentMapper.xml deleted file mode 100644 index 79f74abf1..000000000 --- a/coolstore-partner-dao/src/main/resources/mapper/SysDepartmentMapper.xml +++ /dev/null @@ -1,258 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - id, name, parent_id, depart_order, create_dept_group, auto_add_user, dep_Hiding, - dept_perimits, user_perimits, outer_dept, outer_permit_depts, outer_permit_users, - org_dept_owner, dept_manager_userid_list, user_count, unactive_user_count - - - parent_ids, sub_ids - - - insert into sys_department - - - name, - - - parent_id, - - - depart_order, - - - create_dept_group, - - - auto_add_user, - - - dep_Hiding, - - - dept_perimits, - - - user_perimits, - - - outer_dept, - - - outer_permit_depts, - - - outer_permit_users, - - - org_dept_owner, - - - dept_manager_userid_list, - - - user_count, - - - unactive_user_count, - - - parent_ids, - - - sub_ids, - - - - - #{record.name}, - - - #{record.parentId}, - - - #{record.departOrder}, - - - #{record.createDeptGroup}, - - - #{record.autoAddUser}, - - - #{record.depHiding}, - - - #{record.deptPerimits}, - - - #{record.userPerimits}, - - - #{record.outerDept}, - - - #{record.outerPermitDepts}, - - - #{record.outerPermitUsers}, - - - #{record.orgDeptOwner}, - - - #{record.deptManagerUseridList}, - - - #{record.userCount}, - - - #{record.unactiveUserCount}, - - - #{record.parentIds}, - - - #{record.subIds}, - - - - - update sys_department - - - name = #{record.name}, - - - parent_id = #{record.parentId}, - - - depart_order = #{record.departOrder}, - - - create_dept_group = #{record.createDeptGroup}, - - - auto_add_user = #{record.autoAddUser}, - - - dep_Hiding = #{record.depHiding}, - - - dept_perimits = #{record.deptPerimits}, - - - user_perimits = #{record.userPerimits}, - - - outer_dept = #{record.outerDept}, - - - outer_permit_depts = #{record.outerPermitDepts}, - - - outer_permit_users = #{record.outerPermitUsers}, - - - org_dept_owner = #{record.orgDeptOwner}, - - - dept_manager_userid_list = #{record.deptManagerUseridList}, - - - user_count = #{record.userCount}, - - - unactive_user_count = #{record.unactiveUserCount}, - - - parent_ids = #{record.parentIds}, - - - sub_ids = #{record.subIds}, - - - where id = #{record.id} - - - - insert into sys_department - ( - id, - name, - parent_id, - depart_order, - auto_add_user - ) values - - ( - #{it.id, jdbcType=BIGINT}, - #{it.name, jdbcType=VARCHAR}, - #{it.parentId, jdbcType=BIGINT}, - #{it.departOrder, jdbcType=INTEGER}, - #{it.autoAddUser, jdbcType=BOOLEAN} - ) - - ON DUPLICATE KEY UPDATE name=values(name), parent_id=values(parent_id) - - - - - - delete from sys_department - where id not in - - #{item} - - and id != '1' - - - - - - \ No newline at end of file diff --git a/coolstore-partner-dao/src/test/resources/mybatis-generator.properties b/coolstore-partner-dao/src/test/resources/mybatis-generator.properties index 5d630b0d2..67f8b8545 100644 --- a/coolstore-partner-dao/src/test/resources/mybatis-generator.properties +++ b/coolstore-partner-dao/src/test/resources/mybatis-generator.properties @@ -3,4 +3,4 @@ jdbc.url = jdbc:mysql://dingpushcoolcollege.mysql.rds.aliyuncs.com:3306/coolcoll jdbc.user= coolstore jdbc.password = CSCErYcXniNYm7bT -table.name = enterprise_user \ No newline at end of file +table.name = enterprise_user_role \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/enterprise/EnterpriseUserDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/enterprise/EnterpriseUserDTO.java index 23aa06534..87902ad1e 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/enterprise/EnterpriseUserDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/enterprise/EnterpriseUserDTO.java @@ -2,16 +2,20 @@ package com.cool.store.dto.enterprise; import com.alibaba.fastjson.JSONObject; import com.cool.store.entity.EnterpriseUserDO; +import com.cool.store.enums.UserStatusEnum; import com.cool.store.utils.UUIDUtils; +import com.google.common.collect.Lists; +import com.google.common.collect.Multimap; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import java.io.Serializable; -import java.util.Date; -import java.util.List; +import java.util.*; /** * @@ -24,12 +28,6 @@ import java.util.List; @AllArgsConstructor public class EnterpriseUserDTO implements Serializable { - @ApiModelProperty("分机号") - private String tel; - - @ApiModelProperty("") - private String workPlace; - @ApiModelProperty("备注") private String remark; @@ -39,21 +37,18 @@ public class EnterpriseUserDTO implements Serializable { @ApiModelProperty("钉钉用户id") private String userId; + @ApiModelProperty("手机号码") + private String mobile; + @ApiModelProperty("") private String name; - @ApiModelProperty("是否已经激活, true表示已激活, false表示未激活") - private Boolean active; - @ApiModelProperty("是否是主管理员,0:否,1:是") - private Byte mainAdmin; + private Boolean mainAdmin; @ApiModelProperty("是否为企业的管理员, true表示是, false表示不是") private Boolean isAdmin; - @ApiModelProperty("手机号码") - private String mobile; - @ApiModelProperty("员工的电子邮箱") private String email; @@ -63,18 +58,12 @@ public class EnterpriseUserDTO implements Serializable { @ApiModelProperty("是否号码隐藏, true表示隐藏, false表示不隐藏") private Boolean isHide; - @ApiModelProperty("") - private String position; + @ApiModelProperty("职务") + private String jobTitle; @ApiModelProperty("员工的企业邮箱") private String orgEmail; - @ApiModelProperty("是否为企业的老板, true表示是, false表示不是") - private Boolean isBoss; - - @ApiModelProperty("钉钉Id,在钉钉全局范围内标识用户的身份,但用户可以自行修改一次") - private String dingid; - @ApiModelProperty("头像url") private String avatar; @@ -84,12 +73,6 @@ public class EnterpriseUserDTO implements Serializable { @ApiModelProperty("是否是部门的主管, true表示是, false表示不是") private Boolean isLeader; - @ApiModelProperty("扩展属性,可以设置多种属性(但手机上最多只能显示10个扩展属性,具体显示哪些属性,请到OA管理后台->设置->通讯录信息设置和OA管理后台->设置->手机端显示信息设置)性") - private String extattr; - - @ApiModelProperty("") - private Boolean isEnterprise; - @ApiModelProperty("用户创建时间") private Date createTime; @@ -102,15 +85,6 @@ public class EnterpriseUserDTO implements Serializable { @ApiModelProperty("") private List isLeaderInDepts; - @ApiModelProperty("用户语言环境:en_us/英语_美国,zh_cn/中文_简体,zh_hk/中文_繁体_HK") - private String language; - - @ApiModelProperty("用户来源:默认dingding钉钉,qw企业微信 mobile") - private String appType; - - @ApiModelProperty("登录密码") - private String password; - @ApiModelProperty("") private String monitoredDepartments; @@ -122,53 +96,49 @@ public class EnterpriseUserDTO implements Serializable { @ApiModelProperty("") private List departmentLists; - /** - * 管理范围 - */ - private List scopeList; - private List storeList; - - - public static EnterpriseUserDO transUserDtoToDo(EnterpriseUserDTO enterpriseUserDTO) { - EnterpriseUserDO enterpriseUserDO = new EnterpriseUserDO(); - enterpriseUserDO.setRemark(enterpriseUserDTO.getRemark()); - enterpriseUserDO.setPosition(enterpriseUserDTO.getPosition()); - enterpriseUserDO.setMobile(enterpriseUserDTO.getMobile()); - enterpriseUserDO.setId(UUIDUtils.get32UUID()); - enterpriseUserDO.setUserId(enterpriseUserDTO.getUserId()); - enterpriseUserDO.setName(enterpriseUserDTO.getName()); - enterpriseUserDO.setEmail(enterpriseUserDTO.getEmail()); - enterpriseUserDO.setOrgEmail(enterpriseUserDTO.getOrgEmail()); - enterpriseUserDO.setUnionid(enterpriseUserDTO.getUnionid()); - enterpriseUserDO.setAvatar(enterpriseUserDTO.getAvatar()); - enterpriseUserDO.setCreateTime(new Date()); - enterpriseUserDO.setJobnumber(enterpriseUserDTO.getJobnumber()); - return enterpriseUserDO; - } - - - public static EnterpriseUserDO convertEnterpriseUserDTO2EnterpriseUserDO(EnterpriseUserDTO dto){ - if(dto == null){ - return null; + public static List transUserDtoToDo(List userList, Map regionPathMap, Multimap leaderDeptMap, Multimap roleUserMap) { + if(CollectionUtils.isEmpty(userList)){ + return Lists.newArrayList(); } - EnterpriseUserDO enterpriseUserDO = new EnterpriseUserDO(); - enterpriseUserDO.setName(dto.getName()); - enterpriseUserDO.setId(dto.getId()); - enterpriseUserDO.setUserId(dto.getUserId()); - enterpriseUserDO.setRemark(dto.getRemark()); - enterpriseUserDO.setMobile(dto.getMobile()); - enterpriseUserDO.setEmail(dto.getEmail()); - enterpriseUserDO.setOrgEmail(dto.getOrgEmail()); - enterpriseUserDO.setIsAdmin(dto.getIsAdmin()); - enterpriseUserDO.setUnionid(dto.getUnionid()); - enterpriseUserDO.setPosition(dto.getPosition()); - enterpriseUserDO.setAvatar(dto.getAvatar()); - enterpriseUserDO.setIsLeader(dto.getIsLeader()); - enterpriseUserDO.setCreateTime(dto.getCreateTime()); - enterpriseUserDO.setJobnumber(dto.getJobnumber()); - return enterpriseUserDO; - + List resultList = new ArrayList<>(); + for (EnterpriseUserDTO user : userList) { + EnterpriseUserDO enterpriseUserDO = new EnterpriseUserDO(); + enterpriseUserDO.setId(UUIDUtils.get32UUID()); + enterpriseUserDO.setUserId(user.getUserId()); + enterpriseUserDO.setName(user.getName()); + enterpriseUserDO.setRemark(user.getRemark()); + enterpriseUserDO.setMobile(user.getMobile()); + enterpriseUserDO.setEmail(user.getEmail()); + enterpriseUserDO.setOrgEmail(user.getOrgEmail()); + enterpriseUserDO.setMainAdmin(user.getMainAdmin()); + enterpriseUserDO.setIsAdmin(user.getIsAdmin()); + enterpriseUserDO.setUnionid(user.getUnionid()); + enterpriseUserDO.setAvatar(user.getAvatar()); + enterpriseUserDO.setJobnumber(user.getJobnumber()); + enterpriseUserDO.setUserStatus(UserStatusEnum.NORMAL.getCode()); + enterpriseUserDO.setIsLeader(Boolean.FALSE); + List departmentLists = user.getDepartmentLists(); + List regionPaths = new ArrayList<>(); + if(CollectionUtils.isNotEmpty(departmentLists)){ + for (String departmentId : departmentLists) { + regionPaths.add(regionPathMap.get(departmentId)); + } + } + Collection deptIds = leaderDeptMap.get(user.getUserId()); + if(CollectionUtils.isNotEmpty(deptIds)){ + enterpriseUserDO.setIsLeader(Boolean.TRUE); + enterpriseUserDO.setLeaderDeptIds(JSONObject.toJSONString(deptIds)); + } + enterpriseUserDO.setUserRegionIds(JSONObject.toJSONString(regionPaths)); + enterpriseUserDO.setDeleted(Boolean.FALSE); + enterpriseUserDO.setCreateTime(new Date()); + if(StringUtils.isNotBlank(user.getJobTitle())){ + roleUserMap.put(user.getJobTitle(), user.getUserId()); + } + resultList.add(enterpriseUserDO); + } + return resultList; } } \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/enterprise/SysDepartmentDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/enterprise/SysDepartmentDTO.java index 94c996b8e..d2c5a8bf0 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/enterprise/SysDepartmentDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/enterprise/SysDepartmentDTO.java @@ -1,10 +1,15 @@ package com.cool.store.dto.enterprise; import com.cool.store.constants.CommonConstants; +import com.cool.store.entity.RegionDO; +import com.google.common.collect.Lists; +import com.google.common.collect.Multimap; import lombok.Data; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import java.util.Objects; +import java.util.*; +import java.util.stream.Collectors; /** @@ -82,7 +87,7 @@ public class SysDepartmentDTO { /** * 部门的主管列表,取值为由主管的userid组成的字符串,不同的userid使用|符号进行分割 */ - private String deptManagerUseridList; + private List deptManagerUseridList; /** @@ -105,6 +110,8 @@ public class SysDepartmentDTO { */ private String subIds; + private String leaderUserId; + public SysDepartmentDTO() { @@ -182,4 +189,42 @@ public class SysDepartmentDTO { public int hashCode() { return Objects.hash(id); } + + public static List convertRegionDO(List departmentList, Multimap leaderDeptMap){ + if(CollectionUtils.isEmpty(departmentList)){ + return Lists.newArrayList(); + } + Map parentMap = departmentList.stream().collect(Collectors.toMap(SysDepartmentDTO::getId, SysDepartmentDTO::getParentId)); + List resultList = new ArrayList<>(); + for (SysDepartmentDTO dept : departmentList) { + RegionDO region = new RegionDO(); + region.setRegionId(dept.getId()); + region.setName(dept.getName()); + region.setParentId(dept.getParentId()); + region.setUnclassifiedFlag(CommonConstants.ZERO); + region.setLeaderUserId(dept.getLeaderUserId()); + region.setOrderNum(dept.getDepartOrder()); + region.setThirdDeptId(dept.getId()); + region.setCreateTime(System.currentTimeMillis()); + region.setUpdateTime(System.currentTimeMillis()); + List pathIds = new ArrayList<>(); + pathIds.add(region.getRegionId()); + String parentId = parentMap.get(region.getRegionId()); + while (Objects.nonNull(parentId)){ + pathIds.add(parentId); + parentId = parentMap.get(parentId); + } + Collections.reverse(pathIds); + String regionPath = CommonConstants.PATH_SPILT + String.join(CommonConstants.PATH_SPILT, pathIds) + CommonConstants.PATH_SPILT; + region.setRegionPath(regionPath); + region.setDeleted(Boolean.TRUE); + if(CollectionUtils.isNotEmpty(dept.getDeptManagerUseridList())){ + for (String leader : dept.getDeptManagerUseridList()) { + leaderDeptMap.put(leader, dept.getId()); + } + } + resultList.add(region); + } + return resultList; + } } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/region/RegionDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/region/RegionDTO.java deleted file mode 100644 index 15e6a2d80..000000000 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/region/RegionDTO.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.cool.store.dto.region; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - - -/** - * @author byd - */ -@Builder -@Data -@NoArgsConstructor -@AllArgsConstructor -public class RegionDTO { - /** - * 自增ID - */ - private Long id; - - /** - * 名称 - */ - private String name; - /** - * 父ID - */ - private String parentId; - - - /** - * dinging部门id - */ - private String synDingDeptId; - - /** - * 是否删除标记 - */ - private Boolean deleted; - - /** - * 区域门店数量 - */ - private Integer storeNum; - - /** - * 区域门店范围是否 - */ - private Boolean storeRange = false; - - /** - * 门店地址 非DO - */ - private String address; - - /** - * 门店经度 非DO - */ - private String longitude; - - - /** - * 纬度 非DO - */ - private String latitude; - - /** - * 门店编号 非DO - */ - private String storeCode; - - - /** - * 大区名称 - */ - private String zoneName; - - /** - * brand 主品牌 - */ - private String brand; - - /** - * 管理分区 - */ - private String mangerCity; - - /** - * 经营城市 - */ - private String bizCity; - - /** - * 省区 - */ - private String provinceName; - -} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/region/RegionNode.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/region/RegionNode.java deleted file mode 100644 index 51e5da03c..000000000 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/region/RegionNode.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.cool.store.dto.region; - -import lombok.Data; -import org.apache.commons.lang3.StringUtils; - -import java.util.List; - -/** - * @ClassName RegionNode - * @Description 用一句话描述什么 - */ -@Data -public class RegionNode { - /** - * 自增ID - */ - private Long id; - - /** - * 区域ID - */ - private String regionId; - - /** - * 名称 - */ - private String name; - /** - * 父ID - */ - private String parentId; - - private String parentName; - - /** - * 分组ID - */ - private String groupId; - - /** - * 创建时间 - */ - private Long createTime; - /** - * 创建人 - */ - private String createName; - /** - * 更新时间 - */ - private Long updateTime; - /** - * 更新人 - */ - private String updateName; - - /** - * 子节点 - */ - private List children; - - /** - * 是否有区域权限 - */ - private Boolean isAuth; - - /** - * 门店数量 - */ - private Long storeCount; - - /** - * dinging部门id - */ - private String synDingDeptId; - - /** - * root path store - */ - private String regionType; - - /** - * 路径 - */ - private String regionPath; - - private String fullRegionPath; - - public String getFullRegionPath() { - if(id != null && id == 1L){ - return "/1/"; - } - if (StringUtils.isNotBlank(regionPath)) { - return regionPath + id + "/"; - } else { - return "/" + id + "/"; - } - } - -} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/region/RegionPathDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/region/RegionPathDTO.java deleted file mode 100644 index dc2d50594..000000000 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/region/RegionPathDTO.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.cool.store.dto.region; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author 邵凌志 - * @date 2020/12/22 13:48 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -public class RegionPathDTO { - - private String regionId; - - private String regionPath; - - private Integer storeNum; - - private String regionName; - - private String regionType; - - -} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/region/RegionStoreNumMsgDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/region/RegionStoreNumMsgDTO.java deleted file mode 100644 index 35fc2745e..000000000 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/region/RegionStoreNumMsgDTO.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.cool.store.dto.region; - -import lombok.AllArgsConstructor; -import lombok.Data; - -import java.util.List; - -/** - * describe: - * - * @author zhouyiping - * @date 2021/05/31 - */ -@Data -@AllArgsConstructor -public class RegionStoreNumMsgDTO { - private String eid; - private List regionIdList; - public RegionStoreNumMsgDTO(){} - -} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/region/RegionSyncDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/region/RegionSyncDTO.java deleted file mode 100644 index 0e84d2813..000000000 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/region/RegionSyncDTO.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.cool.store.dto.region; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author 邵凌志 - * @date 2020/12/22 13:48 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -public class RegionSyncDTO { - - /** - * 区域id - */ - private Long id; - - /** - * 区域钉钉id - */ - private String synDingDeptId; -} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserDO.java index 59bc1cc40..14602e767 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserDO.java @@ -48,9 +48,6 @@ public class EnterpriseUserDO implements Serializable { @ApiModelProperty("在当前isv全局范围内唯一标识一个用户的身份,用户无法修改") private String unionid; - @ApiModelProperty("") - private String position; - @ApiModelProperty("头像url") private String avatar; @@ -60,6 +57,9 @@ public class EnterpriseUserDO implements Serializable { @ApiModelProperty("是否是部门的主管, true表示是, false表示不是") private Boolean isLeader; + @ApiModelProperty("管理的部门列表") + private String leaderDeptIds; + @ApiModelProperty("人脸照片url") private String faceUrl; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserRoleDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserRoleDO.java index 8b5dedfee..077f110f7 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserRoleDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserRoleDO.java @@ -1,36 +1,60 @@ package com.cool.store.entity; +import com.google.common.collect.Lists; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; +import java.util.ArrayList; import java.util.Date; +import java.util.List; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import org.apache.commons.collections4.CollectionUtils; /** * * @author zhangchenbiao - * @date 2023-05-19 02:59 + * @date 2023-06-08 10:54 */ @Data @Builder @NoArgsConstructor @AllArgsConstructor public class EnterpriseUserRoleDO implements Serializable { - @ApiModelProperty("主键id") private Integer id; @ApiModelProperty("角色id") - private Long roleId; + private String roleId; @ApiModelProperty("用户id") private String userId; + @ApiModelProperty("删除标识") + private Boolean deleted; + @ApiModelProperty("创建时间") private Date createTime; @ApiModelProperty("更新时间") private Date updateTime; + + public static List convertDO(String roleId, List userIds){ + if(CollectionUtils.isEmpty(userIds)){ + return Lists.newArrayList(); + } + List resultList = new ArrayList<>(); + for (String userId : userIds) { + EnterpriseUserRoleDO userRole = new EnterpriseUserRoleDO(); + userRole.setRoleId(roleId); + userRole.setUserId(userId); + userRole.setDeleted(Boolean.FALSE); + userRole.setCreateTime(new Date()); + userRole.setUpdateTime(new Date()); + resultList.add(userRole); + } + return resultList; + } } \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/LoginRecordDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/LoginRecordDO.java deleted file mode 100644 index 9f589d97f..000000000 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/LoginRecordDO.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.cool.store.entity; - -import io.swagger.annotations.ApiModelProperty; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.io.Serializable; - -/** - * - * @author zhangchenbiao - * @date 2023-05-23 03:46 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class LoginRecordDO implements Serializable { - @ApiModelProperty("主键") - private Long id; - - @ApiModelProperty("用户ID") - private String userId; - - @ApiModelProperty("创建时间") - private Long createTime; -} \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/RegionDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/RegionDO.java index b2288c285..a5eff8ae3 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/RegionDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/RegionDO.java @@ -6,19 +6,17 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import org.apache.commons.lang3.StringUtils; /** * * @author zhangchenbiao - * @date 2023-05-19 02:59 + * @date 2023-06-07 02:07 */ @Data @Builder @NoArgsConstructor @AllArgsConstructor public class RegionDO implements Serializable { - @ApiModelProperty("自增ID") private Long id; @@ -31,8 +29,20 @@ public class RegionDO implements Serializable { @ApiModelProperty("父区域id") private String parentId; - @ApiModelProperty("阿里云分组id") - private String groupId; + @ApiModelProperty("区域路径") + private String regionPath; + + @ApiModelProperty("未分组标志 0 分组 1 未分组") + private Integer unclassifiedFlag; + + @ApiModelProperty("部门负责人") + private String leaderUserId; + + @ApiModelProperty("排序") + private Integer orderNum; + + @ApiModelProperty("第三方唯一id") + private String thirdDeptId; @ApiModelProperty("创建时间") private Long createTime; @@ -46,67 +56,6 @@ public class RegionDO implements Serializable { @ApiModelProperty("更新人") private String updateName; - @ApiModelProperty("vds分组id") - private String vdsGroupCorpId; - - @ApiModelProperty("dinging部门id") - private String synDingDeptId; - - @ApiModelProperty("区域类型 root 根目录 path 区域 store 门店") - private String regionType; - - @ApiModelProperty("区域路径") - private String regionPath; - @ApiModelProperty("删除标记") private Boolean deleted; - - @ApiModelProperty("门店数量") - private Integer storeNum; - - @ApiModelProperty("门店ID") - private String storeId; - - @ApiModelProperty("未分组标志 0 分组 1 未分组") - private Integer unclassifiedFlag; - - @ApiModelProperty("排序") - private Integer orderNum; - - @ApiModelProperty("第三方唯一id") - private String thirdDeptId; - - private Boolean storeRange = false; - - /** - * 门店地址 非DO - */ - private String address; - - /** - * 门店经度 非DO - */ - private String longitude; - - - /** - * 纬度 非DO - */ - private String latitude; - - /** - * 门店编号 非DO - */ - private String storeCode; - - public String getFullRegionPath() { - if(id != null && id == 1L){ - return "/1/"; - } - if (StringUtils.isNotBlank(regionPath)) { - return regionPath + id + "/"; - } else { - return "/" + id + "/"; - } - } } \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/SysDepartmentDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/SysDepartmentDO.java deleted file mode 100644 index 663fe9bec..000000000 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/SysDepartmentDO.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.cool.store.entity; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * - * @author zhangchenbiao - * @date 2023-05-19 03:00 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class SysDepartmentDO implements Serializable { - - @ApiModelProperty("主键id") - private String id; - - @ApiModelProperty("部门名称") - private String name; - - @ApiModelProperty("parent_id") - private String parentId; - - @ApiModelProperty("在父部门中的次序值") - private Integer departOrder; - - @ApiModelProperty("是否同步创建一个关联此部门的企业群, true表示是, false表示不是") - private Boolean createDeptGroup; - - @ApiModelProperty("当群已经创建后,是否有新人加入部门会自动加入该群, true表示是, false表示不是") - private Boolean autoAddUser; - - @ApiModelProperty("是否隐藏部门, true表示隐藏, false表示显示") - private Boolean depHiding; - - @ApiModelProperty("可以查看指定隐藏部门的其他部门列表,如果部门隐藏,则此值生效,取值为其他的部门id组成的的字符串,使用|符号进行分割") - private String deptPerimits; - - @ApiModelProperty("可以查看指定隐藏部门的其他人员列表,如果部门隐藏,则此值生效,取值为其他的人员userid组成的的字符串,使用|符号进行分割") - private String userPerimits; - - @ApiModelProperty("是否本部门的员工仅可见员工自己, 为true时,本部门员工默认只能看到员工自己") - private Boolean outerDept; - - @ApiModelProperty("本部门的员工仅可见员工自己为true时,可以配置额外可见部门,值为部门id组成的的字符串,使用|符号进行分割") - private String outerPermitDepts; - - @ApiModelProperty("本部门的员工仅可见员工自己为true时,可以配置额外可见人员,值为userid组成的的字符串,使用| 符号进行分割") - private String outerPermitUsers; - - @ApiModelProperty("企业群群主") - private String orgDeptOwner; - - @ApiModelProperty("部门的主管列表,取值为由主管的userid组成的字符串,不同的userid使用|符号进行分割") - private String deptManagerUseridList; - - @ApiModelProperty("部门下总人数(包括子部门)") - private Integer userCount; - - @ApiModelProperty("部门下未激活总人数(包括子部门)") - private Integer unactiveUserCount; - - @ApiModelProperty("部门所有父级部门id, 不包括自己, 以/分隔") - private String parentIds; - - @ApiModelProperty("部门所有子部门id,以英文逗号分隔") - private String subIds; - - /** - * 是否是叶子节点 - */ - private Boolean isLeaf; -} \ No newline at end of file diff --git a/coolstore-partner-service/src/main/java/com/cool/store/context/CurrentUser.java b/coolstore-partner-service/src/main/java/com/cool/store/context/CurrentUser.java index 86baad9fc..4d47fe0a6 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/context/CurrentUser.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/context/CurrentUser.java @@ -3,7 +3,6 @@ package com.cool.store.context; import com.cool.store.entity.SysRoleDO; import lombok.Data; - @Data public class CurrentUser { diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseUserService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseUserService.java index 3a7843fe9..53da2b8ef 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseUserService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseUserService.java @@ -14,21 +14,6 @@ import java.util.Map; */ public interface EnterpriseUserService { - void updateUserRegionPathList(List userIds); - - List listUser(String userName, String deptId, - String orderBy, String orderRule, - Long roleId, Integer userStatus, Integer pageNum, Integer pageSize, String jobNumber, String regionId, Boolean hasPage); - - List initUserRole(List enterpriseUserList); - - /** - * 更新用户的部门全路径 - * @param user - * @param deptIdMap - */ - void updateUserDeptPath(EnterpriseUserRequest user, Map deptIdMap); - EnterpriseUserDO getUserInfoByUserId(String userId); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/LoginService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/LoginService.java index 1d9187713..43332e60e 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/LoginService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/LoginService.java @@ -5,5 +5,5 @@ public interface LoginService { - Object feiShuLogin(String userId, String corpId, Boolean needRefreshToken , String appType, String avatar); + Object feiShuLogin(String userId, Boolean needRefreshToken, String avatar); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/RegionService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/RegionService.java index 4dc7708a6..27fb84730 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/RegionService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/RegionService.java @@ -1,9 +1,5 @@ package com.cool.store.service; -import com.cool.store.entity.RegionDO; - -import java.util.List; - /** * @author zhangchenbiao * @FileName: RegionService @@ -12,8 +8,4 @@ import java.util.List; */ public interface RegionService { - void saveRegionAndStore(RegionDO regionDO, String userId); - - void removeRegions(List regionIds); - } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java index 3e9db7615..cf3443262 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java @@ -1,14 +1,23 @@ package com.cool.store.service.impl; import com.cool.store.constants.CommonConstants; +import com.cool.store.dao.*; import com.cool.store.dto.enterprise.*; +import com.cool.store.entity.*; +import com.cool.store.enums.DataSourceEnum; import com.cool.store.http.ISVHttpRequest; import com.cool.store.service.EnterpriseSyncService; +import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.Multimap; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.ListUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.*; +import java.util.stream.Collectors; /** * @author zhangchenbiao @@ -20,12 +29,107 @@ import java.util.*; @Slf4j @Service public class EnterpriseSyncServiceImpl implements EnterpriseSyncService { + @Resource private ISVHttpRequest isvHttpRequest; + @Resource + private RegionDAO regionDAO; + @Resource + private EnterpriseUserDAO enterpriseUserDAO; + @Resource + private EnterpriseUserRoleDAO enterpriseUserRoleDAO; + @Resource + private SysRoleDAO sysRoleDAO; + @Resource + private UserRegionMappingDAO userRegionMappingDAO; @Override public void syncAll() { //同步部门 List departments = isvHttpRequest.getSubDepartments(CommonConstants.ROOT_DEPT_ID_STR, true); + //获取企业信息 + AuthInfoDTO authInfo = isvHttpRequest.getAuthInfo(); + Multimap leaderDeptMap = ArrayListMultimap.create(); + //组织架构中增加根节点,处理部门上下级关系 + List regionList = SysDepartmentDTO.convertRegionDO(departments, leaderDeptMap); + List regionIds = regionList.stream().map(RegionDO::getRegionId).distinct().collect(Collectors.toList()); + //添加根节点 + regionList.add(getRootRegion(authInfo)); + //批量插入 + regionDAO.batchInsertOrUpdate(regionList); + //删除不存在的区域 + regionDAO.deleteNotExistRegion(regionIds); + Multimap roleUserMap = ArrayListMultimap.create(); + //同步用户及部门 + syncUserAndUserRegion(regionList, roleUserMap, leaderDeptMap); + //处理用户角色 删除多余的角色 + if(!roleUserMap.isEmpty()){ + List insertOrUpdateList = new ArrayList<>(); + List userRoleInsertOrUpdateList = new ArrayList<>(); + List roleIds = new ArrayList<>(); + for (String roleName : roleUserMap.keys()) { + SysRoleDO sysRole = SysRoleDO.convertSyncDO(roleName); + roleIds.add(sysRole.getRoleId()); + Collection userIds = roleUserMap.get(roleName); + insertOrUpdateList.add(sysRole); + userRoleInsertOrUpdateList.addAll(EnterpriseUserRoleDO.convertDO(sysRole.getRoleId(), new ArrayList<>(userIds))); + //删除角色下不存在的用户 + enterpriseUserRoleDAO.deleteUserRole(sysRole.getRoleId(), DataSourceEnum.SYNC, new ArrayList<>(userIds)); + } + sysRoleDAO.batchInsertSelective(insertOrUpdateList); + enterpriseUserRoleDAO.batchInsertOrUpdate(userRoleInsertOrUpdateList); + //删除不存在的角色? + sysRoleDAO.deleteRole(DataSourceEnum.SYNC, roleIds); + } + } + + + private void syncUserAndUserRegion(List regionList, Multimap roleUserMap, Multimap leaderDeptMap){ + Map regionPathMap = regionList.stream().collect(Collectors.toMap(RegionDO::getRegionId, RegionDO::getRegionPath)); + List userList = new ArrayList<>(); + List userRegionList = new ArrayList<>(); + List userIds = new ArrayList<>(); + //按部门获取用户 + for (RegionDO region : regionList) { + List departmentUsers = isvHttpRequest.getDepartmentUsers(region.getRegionId()); + List deptUserIds = ListUtils.emptyIfNull(departmentUsers).stream().map(EnterpriseUserDTO::getUserId).collect(Collectors.toList()); + userRegionMappingDAO.deleteUserRegion(region.getRegionId(), DataSourceEnum.SYNC, deptUserIds); + if(CollectionUtils.isEmpty(departmentUsers)){ + continue; + } + userIds.addAll(deptUserIds); + userRegionList.addAll(UserRegionMappingDO.convertSyncDO(region.getRegionId(), departmentUsers)); + //系统内的角色 获取飞书的职务 一个人只能一个职务 + List deptUserList = EnterpriseUserDTO.transUserDtoToDo(departmentUsers, regionPathMap, leaderDeptMap, roleUserMap); + userList.addAll(deptUserList); + if(userList.size() > CommonConstants.DEAL_RECORD_MAX_SIZE){ + enterpriseUserDAO.batchInsertOrUpdate(userList); + userList.clear(); + } + if(userRegionList.size() > CommonConstants.DEAL_RECORD_MAX_SIZE){ + userRegionMappingDAO.batchInsertOrUpdateUserRegion(userRegionList); + userRegionList.clear(); + } + } + enterpriseUserDAO.batchInsertOrUpdate(userList); + userRegionMappingDAO.batchInsertOrUpdateUserRegion(userRegionList); + //删除不存在的用户 + enterpriseUserDAO.deleteUser(userIds); + } + + /** + * 获取跟部门 + * @param authInfo + * @return + */ + private RegionDO getRootRegion(AuthInfoDTO authInfo){ + RegionDO rootRegion = new RegionDO(); + rootRegion.setName(authInfo.getAuthCorpInfo().getCorpName()); + rootRegion.setRegionId(CommonConstants.ROOT_DEPT_ID_STR); + rootRegion.setParentId(CommonConstants.ZERO_STR); + rootRegion.setThirdDeptId(CommonConstants.ROOT_DEPT_ID_STR); + rootRegion.setOrderNum(CommonConstants.ZERO); + rootRegion.setRegionPath(CommonConstants.PATH_SPILT + rootRegion.getRegionId() + CommonConstants.PATH_SPILT); + return rootRegion; } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseUserServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseUserServiceImpl.java index b5d1811e7..ad101df9a 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseUserServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseUserServiceImpl.java @@ -1,23 +1,11 @@ package com.cool.store.service.impl; -import com.cool.store.constants.CommonConstants; -import com.cool.store.context.CurrentUser; import com.cool.store.dao.*; -import com.cool.store.dto.buser.UserRoleDTO; import com.cool.store.entity.*; -import com.cool.store.request.EnterpriseUserRequest; import com.cool.store.service.EnterpriseUserService; -import com.cool.store.vo.buser.EnterpriseUserPageVO; -import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.collections4.ListUtils; -import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; - import javax.annotation.Resource; -import java.util.*; -import java.util.stream.Collectors; /** * @author zhangchenbiao @@ -29,153 +17,12 @@ import java.util.stream.Collectors; @Service public class EnterpriseUserServiceImpl implements EnterpriseUserService { - @Resource - private UserRegionMappingDAO userRegionMappingDAO; - @Resource - private RegionDAO regionDAO; + @Resource private EnterpriseUserDAO enterpriseUserDAO; @Resource private EnterpriseUserRoleDAO enterpriseUserRoleDAO; - @Override - public void updateUserRegionPathList(List userIds) { - if (CollectionUtils.isEmpty(userIds)) { - return; - } - //查询该人员的最新部门情况 同步到enterpriseUser 表usereginIds表中 - List userRegionMappingDOS = userRegionMappingDAO.listUserRegionMappingByUserId(userIds); - Map> userRegionMappingMap = ListUtils.emptyIfNull(userRegionMappingDOS) - .stream() - .collect(Collectors.groupingBy(UserRegionMappingDO::getUserId)); - List regionIds = userRegionMappingDOS.stream() - .map(UserRegionMappingDO::getRegionId).distinct().collect(Collectors.toList()); - List regionDOS = regionDAO.getRegionByRegionIds(regionIds); - Map regionMap = regionDOS.stream() - .collect(Collectors.toMap(RegionDO::getRegionId, data -> data)); - - List enterpriseUserList= new ArrayList<>(); - for (String userId:userIds) { - EnterpriseUserDO enterpriseUserDO = new EnterpriseUserDO(); - enterpriseUserDO.setUserId(userId); - String regionPathString = ""; - List regionDOList = new ArrayList<>(); - //如果没有对应部门 默认未null 正常情况下不会出现userRegionId不为null的情况 - enterpriseUserDO.setUserRegionIds(null); - List userRegionMappingList = userRegionMappingMap.get(userId); - - //异常情况下处理 - if (CollectionUtils.isEmpty(userRegionMappingList)){ - log.info("getUserRegionPathListStr exception 该人员没有任何部门"); - //查询未分组 - RegionDO unclassifiedRegionDO = regionDAO.getUnclassifiedRegionDO(); - //将人添加到未分组中 - addUserRegionMappingDO(userId,unclassifiedRegionDO.getRegionId(),new CurrentUser()); - regionDOList.add(unclassifiedRegionDO); - } - - ListUtils.emptyIfNull(userRegionMappingList) - .stream() - .forEach(userRegionMappingDO -> { - RegionDO regionDO = regionMap.get(userRegionMappingDO.getRegionId()); - if (Objects.nonNull(regionDO)){ - regionDOList.add(regionDO); - } - }); - - regionPathString = regionDOList.stream() - .map(e -> e.getFullRegionPath()).collect(Collectors.joining(CommonConstants.COMMA)); - if (StringUtils.isNotBlank(regionPathString)){ - enterpriseUserDO.setUserRegionIds(CommonConstants.SQUAREBRACKETSLEFT+ regionPathString+ CommonConstants.SQUAREBRACKETSRIGHT); - } - enterpriseUserList.add(enterpriseUserDO); - } - //enterpriseUserDAO.batchUpdateDiffUserDiffRegionIds(enterpriseUserList); - } - - @Override - public List listUser(String userName, String deptId, - String orderBy, String orderRule, - Long roleId, Integer userStatus, Integer pageNum, Integer pageSize, String jobNumber, String regionId, Boolean hasPage) { - - return null; - } - - private void addUserRegionMappingDO(String userId,String regionId,CurrentUser currentUser){ - UserRegionMappingDO userRegionMappingDO = new UserRegionMappingDO(); - userRegionMappingDO.setUserId(userId); - userRegionMappingDO.setRegionId(regionId); - userRegionMappingDO.setCreateId(currentUser.getUserId()); - userRegionMappingDO.setUpdateId(currentUser.getUserId()); - userRegionMappingDO.setCreateTime(System.currentTimeMillis()); - userRegionMappingDO.setUpdateTime(System.currentTimeMillis()); - //将用户添加到未分组 - userRegionMappingDAO.batchInsertRegionMapping(Arrays.asList(userRegionMappingDO)); - } - - @Override - public List initUserRole(List enterpriseUserList) { - List userIdList = ListUtils.emptyIfNull(enterpriseUserList) - .stream() - .map(EnterpriseUserPageVO::getUserId) - .collect(Collectors.toList()); - - if(CollectionUtils.isNotEmpty(userIdList)){ - List userRoleDTOS = enterpriseUserRoleDAO.getUserAndRolesByUserId(userIdList); - //封装 userId-userRole map,以表示一个用户对应几个角色 - Map> userRoleDtoMap = new HashMap<>(); - userRoleDTOS.forEach(roleDto -> { - List check = userRoleDtoMap.get(roleDto.getUserId()); - if (check == null) { - List roleDtoList = new ArrayList<>(); - roleDtoList.add(roleDto.getRoleId()); - userRoleDtoMap.put(roleDto.getUserId(), roleDtoList); - } else { - check.add(roleDto.getRoleId()); - userRoleDtoMap.put(roleDto.getUserId(), check); - } - }); - //获得角色id -角色名称的map - Map roleNameMap = ListUtils.emptyIfNull(userRoleDTOS) - .stream() - .filter(data -> StringUtils.isNotBlank(data.getRoleName())) - .collect(Collectors.toMap(UserRoleDTO::getRoleId, UserRoleDTO::getRoleName, (a, b) -> a)); - enterpriseUserList.forEach(user -> { - List roleIdList = userRoleDtoMap.get(user.getUserId()); - if (roleIdList != null && roleIdList.size() != 0) { - String roleName = roleIdList.stream() - .filter(data -> roleNameMap.get(data) != null) - .map(role -> roleNameMap.get(role)) - .collect(Collectors.joining(",")); - user.setRoleName(roleName); - } - }); - } - return userIdList; - } - - @Override - public void updateUserDeptPath(EnterpriseUserRequest user, Map deptIdMap) { - List departmentLists = user.getDepartmentLists(); - //logger.info("设置用户部门全路径 start department:{},user:{},id:{}",department,user.getUnionid(),user.getId()); - if (CollectionUtils.isNotEmpty(departmentLists)) { - //logger.info("into if else department "); - List deptList = Lists.newArrayList(); - departmentLists.forEach(deptId -> { - List tmpList = Lists.newArrayList(deptId); - String parentId; - while ((parentId = deptIdMap.get(deptId)) != null && (!parentId.equals(deptId))) { - tmpList.add(parentId); - deptId = parentId; - } - String collect = Lists.reverse(tmpList).stream().map(String::valueOf).collect(Collectors.joining("/")); - String data = collect.startsWith("/") ? collect : "/" + collect; - data = data.endsWith("/") ? data : data + "/"; - deptList.add(data); - }); - user.setDepartments("[" + String.join(",", deptList) + "]"); - } - } @Override public EnterpriseUserDO getUserInfoByUserId(String userId) { diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LoginServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LoginServiceImpl.java index e2dfc1235..f980fdbb9 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LoginServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LoginServiceImpl.java @@ -37,20 +37,17 @@ public class LoginServiceImpl implements LoginService { @Resource private SysRoleDAO sysRoleDAO; @Resource - private LoginRecordDAO loginRecordDAO; - @Resource private RedisUtilPool redisUtilPool; + @Resource + private EnterpriseUserRoleDAO enterpriseUserRoleDAO; @Override - public Object feiShuLogin(String userId, String corpId, Boolean needRefreshToken, String appType, String avatar) { - log.info("isvLogin, corpId={}, userId={}, appType={}", corpId, userId, appType); + public Object feiShuLogin(String userId, Boolean needRefreshToken, String avatar) { + log.info("isvLogin, corpId={}, userId={}", userId); DataSourceContext.clearDataSourceType(); if (StringUtils.isEmpty(userId)) { throw new ServiceException(ErrorCodeEnum.USER_NOT_EXIST); } - if (StringUtils.isEmpty(corpId)) { - throw new ServiceException(ErrorCodeEnum.ENTERPRISE_NOT_EXIST); - } CurrentUser currentUser = new CurrentUser(); RefreshUser refreshUser = new RefreshUser(); // 查企业用户 @@ -58,7 +55,7 @@ public class LoginServiceImpl implements LoginService { if(enterpriseUser == null){ throw new ServiceException(ErrorCodeEnum.NOT_AUTH); } - SysRoleDO sysRole = sysRoleDAO.getHighestPrioritySysRoleDoByUserId(userId); + SysRoleDO sysRole = sysRoleDAO.getHighestPriorityRoleByUserId(userId); if(Objects.isNull(sysRole)){ log.info("当前用户没角色:{}", userId); throw new ServiceException(ErrorCodeEnum.NOT_AUTH); @@ -77,7 +74,7 @@ public class LoginServiceImpl implements LoginService { currentUser.setUserId(enterpriseUser.getUserId()); currentUser.setIsAdmin(enterpriseUser.getIsAdmin()); //设置当前登录人使用的企业相关信息 - currentUser.setRoleAuth(sysRole.getRoleAuth()); + //currentUser.setRoleAuth(sysRole.getRoleAuth()); currentUser.setSysRoleDO(sysRole); //生成令牌 RandomNumberGenerator randomNumberGenerator = new SecureRandomNumberGenerator(); @@ -85,7 +82,6 @@ public class LoginServiceImpl implements LoginService { String refreshToken = randomNumberGenerator.nextBytes().toHex(); currentUser.setName(enterpriseUser.getName()); currentUser.setAccessToken(token); - currentUser.setAppType(appType); JSONObject jsonObject = new JSONObject(); jsonObject.put("action_token", token); jsonObject.put("user", currentUser); @@ -94,7 +90,6 @@ public class LoginServiceImpl implements LoginService { redisUtilPool.setString(currentUser.getUserId(), token); redisUtilPool.setString(CommonConstants.REFRESH_TOKEN_KEY+":"+refreshToken,JSON.toJSONString(refreshUser), CommonConstants.REFRESH_TOKEN_EXPIRE); jsonObject.put("refresh_token",refreshToken); - loginRecordDAO.addLoginRecord(currentUser.getUserId()); log.info("[" + enterpriseUser.getName() + "; action_token:"+ token + "; userId:" + currentUser.getUserId() +"]登入系统成功"); return jsonObject; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/RegionServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/RegionServiceImpl.java index 6510b4524..c76046adb 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/RegionServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/RegionServiceImpl.java @@ -1,18 +1,12 @@ package com.cool.store.service.impl; -import com.cool.store.dao.RegionDAO; -import com.cool.store.entity.RegionDO; -import com.cool.store.enums.RegionTypeEnum; import com.cool.store.mq.producer.SimpleMessageService; import com.cool.store.service.RegionService; import com.cool.store.utils.RedisConstantUtil; import com.cool.store.utils.RedisUtil; -import com.cool.store.utils.UUIDUtils; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.List; /** * @author zhangchenbiao @@ -28,38 +22,7 @@ public class RegionServiceImpl implements RegionService { @Resource private RedisConstantUtil redisConstantUtil; @Resource - private RegionDAO regionDAO; - @Resource private SimpleMessageService simpleMessageService; - @Transactional(rollbackFor = Exception.class) - @Override - public void saveRegionAndStore(RegionDO regionDO, String userId) { - String storeId = null; - if(regionDO.getStoreRange()){ - storeId = UUIDUtils.get32UUID(); - } - regionDO.setStoreId(storeId); - regionDO.setRegionType(RegionTypeEnum.PATH.getType()); - RegionDO oldRegion = regionDAO.getBySynDingDeptId(regionDO.getSynDingDeptId()); - boolean isAdd = oldRegion == null; - if (isAdd) { - if(regionDO.getStoreRange()){ - regionDO.setStoreId(storeId); - regionDO.setRegionType(RegionTypeEnum.STORE.getType()); - } - regionDAO.ignoreInsert(regionDO); - } else { - if(regionDO.getStoreRange()){ - regionDO.setRegionType(RegionTypeEnum.STORE.getType()); - } - regionDAO.updateSyncRegion(regionDO); - } - } - - @Override - public void removeRegions(List regionIds) { - regionDAO.removeRegion(regionIds); - } } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/EnterpriseUserController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/EnterpriseUserController.java index 907f4533c..394b31236 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/EnterpriseUserController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/EnterpriseUserController.java @@ -28,25 +28,5 @@ public class EnterpriseUserController { @Resource public EnterpriseUserService enterpriseUserService; - @GetMapping(path = "/dept/userList") - public ResponseResult> getUserList(@RequestParam(name = "user_name", required = false) String userName, - @RequestParam(name = "dept_id", required = false) String deptId, - @RequestParam(name = "role_id", required = false) Long roleId, - @RequestParam(name = "order_by", required = false) String orderBy, - @RequestParam(name = "order_rule", required = false, defaultValue = "asc") String orderRule, - @RequestParam(name = "user_status", required = false) Integer userStatus, - @RequestParam(name = "page_num", required = false, defaultValue = "1") Integer pageNum, - @RequestParam(name = "page_size", required = false, defaultValue = "10") Integer pageSize, - @RequestParam(name = "job_number", required = false) String jobNumber, - @RequestParam(name = "region_id", required = false) String regionId, - @RequestParam(name = "has_page", required = false,defaultValue = "true") Boolean hasPage) { - DataSourceHelper.changeToMy(); - List deptUserList = enterpriseUserService.listUser(userName, deptId, orderBy, orderRule, roleId, userStatus, pageNum, pageSize, jobNumber,regionId,hasPage); - if(CollectionUtils.isNotEmpty(deptUserList)){ - return ResponseResult.success(new PageInfo<>(deptUserList)); - }else { - return ResponseResult.success(new PageInfo<>()); - } - } } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/LoginController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/LoginController.java index 249202bb8..b93ec4eb7 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/LoginController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/LoginController.java @@ -37,18 +37,15 @@ public class LoginController { public Object feiShuLogin(@RequestBody FeiShuLoginDTO param) { log.info("feiShuLogin data={}", JSONObject.toJSONString(param)); String code = param.getCode(); - String appId = param.getAppId(); - String userId = "", corpId = "", appType = AppTypeEnum.FEI_SHU.getValue(); try { - String value = "code=" + code + "&appType=" + appType + "&appId=" + appId; + String value = "code=" + code; UserIdInfoDTO userInfo = isvHttpRequest.getUserIdByCode(value); if(Objects.isNull(userInfo)){ throw new ServiceException(ErrorCodeEnum.LOGIN_ERROR); } log.info("userInfo:{}", JSONObject.toJSONString(userInfo)); - userId = userInfo.getOpenId(); - corpId = userInfo.getCorpId(); - return loginService.feiShuLogin(userId, corpId, Boolean.TRUE, appType, StringUtils.EMPTY); + String userId = userInfo.getOpenId(); + return loginService.feiShuLogin(userId, Boolean.TRUE, StringUtils.EMPTY); } catch (ServiceException e) { log.error(e.getMessage(), e); throw new ServiceException(ErrorCodeEnum.LOGIN_ERROR); diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java index 8c6d7b2d9..7b6bd385c 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java @@ -6,6 +6,7 @@ import com.cool.store.enums.RocketMqTagEnum; import com.cool.store.http.ISVHttpRequest; import com.cool.store.mq.producer.SimpleMessageService; import com.cool.store.response.ResponseResult; +import com.cool.store.service.EnterpriseSyncService; import com.cool.store.service.EnterpriseUserService; import com.cool.store.utils.UUIDUtils; import lombok.extern.slf4j.Slf4j; @@ -34,6 +35,9 @@ public class TestController { private EnterpriseUserService enterpriseUserService; @Resource private ISVHttpRequest isvHttpRequest; + @Resource + private EnterpriseSyncService enterpriseSyncService; + @GetMapping("/sendMq") public ResponseResult sendMq(){ @@ -94,4 +98,10 @@ public class TestController { return ResponseResult.success(isvHttpRequest.getSubDepartments(parentId, fetchChild)); } + @GetMapping("syncAll") + public ResponseResult syncAll(){ + enterpriseSyncService.syncAll(); + return ResponseResult.success(); + } + }