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 a848b5157..613c00a3e 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 @@ -38,7 +38,6 @@ public class CommonConstants { public static final String WX_APP_SECRET_KEY = "wx_app_secret_key:{0}"; public static final String MINI_PROGRAM_SESSION_KEY = "mini_program_session_key:{0}:{1}"; - public static final String ENTERPRISE_OPEN_STATUS_KEY = "enterprise_open_status:{0}_{1}"; public static final String ROOT_DEPT_ID_STR = "1"; diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseConfigDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseConfigDAO.java deleted file mode 100644 index c8142c4ff..000000000 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseConfigDAO.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.cool.store.dao; - -import com.cool.store.mapper.EnterpriseConfigMapper; -import com.cool.store.entity.EnterpriseConfigDO; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Repository; - -import javax.annotation.Resource; -import java.util.List; - -/** - * @author zhangchenbiao - * @FileName: EnterpriseConfigDAO - * @Description: - * @date 2023-05-18 11:15 - */ -@Repository -public class EnterpriseConfigDAO { - - @Resource - private EnterpriseConfigMapper enterpriseConfigMapper; - - - public EnterpriseConfigDO selectByEnterpriseId() { - //return enterpriseConfigMapper.selectByEnterpriseId(enterpriseId); - return null; - } - - public EnterpriseConfigDO getDbInfoByDbName(String dbName) { - if(StringUtils.isBlank(dbName)){ - return null; - } - return enterpriseConfigMapper.getDbInfoByDbName(dbName); - } - - public List getDistinctDbServer() { - return enterpriseConfigMapper.getDistinctDbServer(); - } - - public EnterpriseConfigDO getConfigByCorpIdAndAppType(String corpId, String appType){ - if(StringUtils.isAnyBlank(corpId, appType)){ - return null; - } - return enterpriseConfigMapper.getConfigByCorpIdAndAppType(corpId, appType); - } - - - -} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseDAO.java deleted file mode 100644 index 17ba41a67..000000000 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseDAO.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.cool.store.dao; - -import com.cool.store.entity.EnterpriseDO; -import com.cool.store.mapper.EnterpriseMapper; -import org.springframework.stereotype.Repository; - -import javax.annotation.Resource; - -/** - * @author zhangchenbiao - * @FileName: EnterpriseDAO - * @Description: - * @date 2023-05-23 13:52 - */ -@Repository -public class EnterpriseDAO { - - @Resource - private EnterpriseMapper enterpriseMapper; - - - public EnterpriseDO getEnterpriseById(){ - //return enterpriseMapper.getEnterpriseById(enterpriseId); - return null; - } - -} 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 15a39ff7e..075f416e8 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 @@ -1,18 +1,12 @@ package com.cool.store.dao; import com.cool.store.entity.EnterpriseUserDO; -import com.cool.store.enums.UserSelectRangeEnum; -import com.cool.store.enums.UserStatusEnum; import com.cool.store.mapper.EnterpriseUserMapper; -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.ArrayList; import java.util.List; -import java.util.Objects; /** * @author zhangchenbiao @@ -32,111 +26,16 @@ public class EnterpriseUserDAO { return enterpriseUserMapper.getUserInfoById(userId); } - public void batchInsertOrUpdate(List users) { - List result = new ArrayList<>(); - users.forEach(user -> { - if (StringUtils.isBlank(user.getUnionid()) || StringUtils.isBlank(user.getUserId())) { - return; - } - if (StringUtils.isBlank(user.getName())) { - user.setName(user.getUserId()); - } - result.add(user); - }); - enterpriseUserMapper.batchInsertOrUpdate(result); + public void batchInsertOrUpdate(List collect) { } - public void batchUpdateDiffUserDiffRegionIds(List enterpriseUserList) { - if(CollectionUtils.isEmpty(enterpriseUserList)){ - return; - } - enterpriseUserMapper.batchUpdateDiffUserDiffRegionIds(enterpriseUserList); + public void insertEnterpriseUser(EnterpriseUserDO enterpriseUser) { } - public List fuzzyUsersByDepartment( - String deptId, - Long roleId, - String orderBy, - String orderRule, - String userName, - String jobnumber, - Integer userStatus, - List userIdList, - String regionId){ - return enterpriseUserMapper.fuzzyUsersByDepartment(deptId, roleId, orderBy, orderRule, userName, jobnumber, userStatus, userIdList, regionId); + public void updateEnterpriseUser(EnterpriseUserDO enterpriseUser) { } - public List fuzzyUsersByNotRole( - String deptId, - String orderBy, - String orderRule, - String userName, - String jobnumber, - Integer userStatus, - List userIdList, - String regionId){ - return enterpriseUserMapper.fuzzyUsersByNotRole(deptId, orderBy, orderRule, userName, jobnumber, userStatus, userIdList, regionId); - } - - public List selectUsersByUserIds(List userIds) { - return enterpriseUserMapper.selectUsersByUserIds(userIds); - } - - public List listUserByGroupId(String groupId, String userName, List userIdList){ - if(StringUtils.isAnyBlank(groupId)){ - return Lists.newArrayList(); - } - return enterpriseUserMapper.listUserByGroupId(groupId, userName, userIdList); - } - - public List listByRegionIdList(List regionIdList){ - if(CollectionUtils.isEmpty(regionIdList)){ - return Lists.newArrayList(); - } - return enterpriseUserMapper.listByRegionIdList(regionIdList); - } - - public Boolean insertEnterpriseUser(EnterpriseUserDO entity) { - if(Objects.isNull(entity.getUserStatus())){ - entity.setUserStatus(UserStatusEnum.NORMAL.getCode()); - } - if(Objects.isNull(entity.getActive())){ - entity.setActive(true); - } - if(StringUtils.isBlank(entity.getThirdOaUniqueFlag())){ - entity.setThirdOaUniqueFlag(null); - } - entity.setSubordinateRange(UserSelectRangeEnum.ALL.getCode()); - if (StringUtils.isBlank(entity.getUnionid()) || StringUtils.isBlank(entity.getUserId())) { - return false; - } - if (StringUtils.isBlank(entity.getName())) { - entity.setName(entity.getUserId()); - } - enterpriseUserMapper.insertEnterpriseUser(entity); - return true; - } - - public void updateEnterpriseUser(EnterpriseUserDO enterpriseUser){ - if(Objects.isNull(enterpriseUser)){ - return; - } - enterpriseUserMapper.updateEnterpriseUser(enterpriseUser); - } - - public List getMainAdminUserIds(){ - return enterpriseUserMapper.getMainAdminUserIds(); - } - - public List selectSpecifyNodeUserIds( String dingDeptId) { - return enterpriseUserMapper.selectSpecifyNodeUserIds(dingDeptId); - } - - public List selectAllUserId() { - return enterpriseUserMapper.selectAllUserIds(); - } - - public EnterpriseUserDO selectByUserIdIgnoreActive(String userId) { - return enterpriseUserMapper.selectByUserIdIgnoreActive(userId); + public List getMainAdminUserIds() { + return null; } } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseConfigMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseConfigMapper.java deleted file mode 100644 index fcf52e09b..000000000 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseConfigMapper.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.cool.store.mapper; - -import com.cool.store.entity.EnterpriseConfigDO; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * @author zhangchenbiao - * @date 2023-05-18 11:09 - */ -public interface EnterpriseConfigMapper { - - /** - * 根据企业id获取config - * @param enterpriseId - * @return - */ - EnterpriseConfigDO selectByEnterpriseId(@Param("enterpriseId") String enterpriseId); - - /** - * 获取dbServer - * @return - */ - List getDistinctDbServer(); - - /** - * 根据dbName 获取数据库信息 - * @param dbName - * @return - */ - EnterpriseConfigDO getDbInfoByDbName(@Param("dbName")String dbName); - - /** - * 根据corpId 和 appType 获取config信息 - * @param corpId - * @param appType - * @return - */ - EnterpriseConfigDO getConfigByCorpIdAndAppType(@Param("corpId")String corpId, @Param("appType")String appType); - -} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseMapper.java deleted file mode 100644 index 2106df6bc..000000000 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseMapper.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.cool.store.mapper; - -import com.cool.store.entity.EnterpriseDO; -import org.apache.ibatis.annotations.Param; - -/** - * @author zhangchenbiao - * @date 2023-05-23 11:36 - */ -public interface EnterpriseMapper { - /** - * - * 默认插入方法,只会给有值的字段赋值 - * 会对传进来的字段做判空处理,如果字段为空,则使用数据库默认字段或者null - * dateTime:2023-05-23 11:36 - */ - int insertSelective(EnterpriseDO record); - - /** - * - * 默认更新方法,根据主键更新,不会把null值更新到数据库,避免覆盖之前有值的 - * dateTime:2023-05-23 11:36 - */ - int updateByPrimaryKeySelective(EnterpriseDO record); - - /** - * 获取企业信息 - * @param enterpriseId - * @return - */ - EnterpriseDO getEnterpriseById(@Param("id") String id); -} \ 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 deleted file mode 100644 index d42be0fcf..000000000 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.cool.store.mapper; - -import com.cool.store.dto.enterprise.EnterpriseUserDTO; -import com.cool.store.entity.EnterpriseUserDO; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * @author zhangchenbiao - * @date 2023-05-19 02:58 - */ -public interface EnterpriseUserMapper { - /** - * - * 默认插入方法,只会给有值的字段赋值 - * 会对传进来的字段做判空处理,如果字段为空,则使用数据库默认字段或者null - * dateTime:2023-05-19 02:58 - */ - int insertSelective(@Param("record") EnterpriseUserDO record); - - /** - * - * 默认更新方法,根据主键更新,不会把null值更新到数据库,避免覆盖之前有值的 - * dateTime:2023-05-19 02:58 - */ - int updateByPrimaryKeySelective(@Param("record") EnterpriseUserDO record); - - /** - * - * @param enterpriseId - * @param userId - * @return - */ - EnterpriseUserDO getUserInfoById(@Param("userId")String userId); - - /** - * 批量插入或更新 - * @param enterpriseId - * @param users - */ - void batchInsertOrUpdate(@Param("list") List users); - - /** - * 批量更新不同用户 不同的userRegionids - * @param eid - * @param enterpriseUserDOList - * @return - */ - Boolean batchUpdateDiffUserDiffRegionIds(@Param("list") List enterpriseUserDOList); - - List fuzzyUsersByDepartment(@Param("deptId") String deptId, - @Param("roleId") Long roleId, - @Param("orderBy") String orderBy, - @Param("orderRule") String orderRule, - @Param("userName") String userName, - @Param("jobNumber") String jobnumber, - @Param("userStatus") Integer userStatus, - @Param("userIdList") List userIdList, - @Param("regionId") String regionId); - - List fuzzyUsersByNotRole(@Param("deptId") String deptId, - @Param("orderBy") String orderBy, - @Param("orderRule") String orderRule, - @Param("userName") String userName, - @Param("jobNumber") String jobnumber, - @Param("userStatus") Integer userStatus, - @Param("userIdList") List userIdList, - @Param("regionId") String regionId); - - /** - * 根据用户id数组获取用户 - * @param eid - * @param userIds - * @return - */ - List selectUsersByUserIds(@Param("userIds") List userIds); - - - List listUserByGroupId(@Param("groupId") String groupId, - @Param("userName") String userName, - @Param("userIdList") List userIdList); - - List listByRegionIdList(@Param("regionIdList") List regionIdList); - - void updateEnterpriseUser(@Param("enterpriseUserDO") EnterpriseUserDO enterpriseUserDO); - - - List getMainAdminUserIds(); - - List selectSpecifyNodeUserIds(@Param("dingDeptId") String dingDeptId); - - List selectAllUserIds(); - - EnterpriseUserDO selectByUserIdIgnoreActive(@Param("userId") String userId); - - void insertEnterpriseUser(@Param("entity") EnterpriseUserDO entity); - -} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseConfigMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseConfigMapper.xml deleted file mode 100644 index 9da753998..000000000 --- a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseConfigMapper.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - id, current_package, enterprise_id, staff_count, db_source_name, db_server, db_port, - db_name, db_user, db_pwd, license, license_expires, license_type, ding_corp_id, ding_corp_secret, - create_time, create_user, main_corp_id, app_type, permanent_code, agentid, cool_college_enterprise_id, - cool_college_secret - - - - - - - - - - \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseMapper.xml deleted file mode 100644 index cbe1d41d1..000000000 --- a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseMapper.xml +++ /dev/null @@ -1,295 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - id, name, original_name, mobile, province, city, status, logo, is_vip, auth_type, - auth_user_id, industry, logo_name, corp_logo_url, is_authenticated, auth_level, create_time, - update_time, package_begin_date, package_end_date, aliyun_person_group_crop_id, app_type, - tag, dataware_config, is_leave_info, limit_store_count, limit_device_count - - - insert into enterprise - - - name, - - - original_name, - - - mobile, - - - province, - - - city, - - - status, - - - logo, - - - is_vip, - - - auth_type, - - - auth_user_id, - - - industry, - - - logo_name, - - - corp_logo_url, - - - is_authenticated, - - - auth_level, - - - create_time, - - - update_time, - - - package_begin_date, - - - package_end_date, - - - aliyun_person_group_crop_id, - - - app_type, - - - tag, - - - dataware_config, - - - is_leave_info, - - - limit_store_count, - - - limit_device_count, - - - - - #{name}, - - - #{originalName}, - - - #{mobile}, - - - #{province}, - - - #{city}, - - - #{status}, - - - #{logo}, - - - #{isVip}, - - - #{authType}, - - - #{authUserId}, - - - #{industry}, - - - #{logoName}, - - - #{corpLogoUrl}, - - - #{isAuthenticated}, - - - #{authLevel}, - - - #{createTime}, - - - #{updateTime}, - - - #{packageBeginDate}, - - - #{packageEndDate}, - - - #{aliyunPersonGroupCropId}, - - - #{appType}, - - - #{tag}, - - - #{datawareConfig}, - - - #{isLeaveInfo}, - - - #{limitStoreCount}, - - - #{limitDeviceCount}, - - - - - update enterprise - - - name = #{name}, - - - original_name = #{originalName}, - - - mobile = #{mobile}, - - - province = #{province}, - - - city = #{city}, - - - status = #{status}, - - - logo = #{logo}, - - - is_vip = #{isVip}, - - - auth_type = #{authType}, - - - auth_user_id = #{authUserId}, - - - industry = #{industry}, - - - logo_name = #{logoName}, - - - corp_logo_url = #{corpLogoUrl}, - - - is_authenticated = #{isAuthenticated}, - - - auth_level = #{authLevel}, - - - create_time = #{createTime}, - - - update_time = #{updateTime}, - - - package_begin_date = #{packageBeginDate}, - - - package_end_date = #{packageEndDate}, - - - aliyun_person_group_crop_id = #{aliyunPersonGroupCropId}, - - - app_type = #{appType}, - - - tag = #{tag}, - - - dataware_config = #{datawareConfig}, - - - is_leave_info = #{isLeaveInfo}, - - - limit_store_count = #{limitStoreCount}, - - - limit_device_count = #{limitDeviceCount}, - - - where id = #{id} - - - - \ 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 deleted file mode 100644 index 7525104c8..000000000 --- a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml +++ /dev/null @@ -1,888 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - id, user_id, name, tel, work_place, remark, mobile, email, org_email, active, order_in_depts, - main_admin, is_admin, is_boss, dingId, unionid, is_hide, position, avatar, extattr, - is_enterprise, roles, is_leader, face_url, create_time, language, user_status, third_oa_unique_flag, - subordinate_change, update_time, subordinate_range - - - is_leader_in_depts, department, jobnumber, monitored_departments, departments, user_region_ids - - - insert into enterprise_user - - - user_id, - - - name, - - - tel, - - - work_place, - - - remark, - - - mobile, - - - email, - - - org_email, - - - active, - - - order_in_depts, - - - main_admin, - - - is_admin, - - - is_boss, - - - dingId, - - - unionid, - - - is_hide, - - - position, - - - avatar, - - - extattr, - - - is_enterprise, - - - roles, - - - is_leader, - - - face_url, - - - create_time, - - - language, - - - user_status, - - - third_oa_unique_flag, - - - subordinate_change, - - - update_time, - - - subordinate_range, - - - is_leader_in_depts, - - - department, - - - jobnumber, - - - monitored_departments, - - - departments, - - - user_region_ids, - - - - - #{record.userId}, - - - #{record.name}, - - - #{record.tel}, - - - #{record.workPlace}, - - - #{record.remark}, - - - #{record.mobile}, - - - #{record.email}, - - - #{record.orgEmail}, - - - #{record.active}, - - - #{record.orderInDepts}, - - - #{record.mainAdmin}, - - - #{record.isAdmin}, - - - #{record.isBoss}, - - - #{record.dingid}, - - - #{record.unionid}, - - - #{record.isHide}, - - - #{record.position}, - - - #{record.avatar}, - - - #{record.extattr}, - - - #{record.isEnterprise}, - - - #{record.roles}, - - - #{record.isLeader}, - - - #{record.faceUrl}, - - - #{record.createTime}, - - - #{record.language}, - - - #{record.userStatus}, - - - #{record.thirdOaUniqueFlag}, - - - #{record.subordinateChange}, - - - #{record.updateTime}, - - - #{record.subordinateRange}, - - - #{record.isLeaderInDepts}, - - - #{record.department}, - - - #{record.jobnumber}, - - - #{record.monitoredDepartments}, - - - #{record.departments}, - - - #{record.userRegionIds}, - - - - - update enterprise_user - - - user_id = #{record.userId}, - - - name = #{record.name}, - - - tel = #{record.tel}, - - - work_place = #{record.workPlace}, - - - remark = #{record.remark}, - - - mobile = #{record.mobile}, - - - email = #{record.email}, - - - org_email = #{record.orgEmail}, - - - active = #{record.active}, - - - order_in_depts = #{record.orderInDepts}, - - - main_admin = #{record.mainAdmin}, - - - is_admin = #{record.isAdmin}, - - - is_boss = #{record.isBoss}, - - - dingId = #{record.dingid}, - - - unionid = #{record.unionid}, - - - is_hide = #{record.isHide}, - - - position = #{record.position}, - - - avatar = #{record.avatar}, - - - extattr = #{record.extattr}, - - - is_enterprise = #{record.isEnterprise}, - - - roles = #{record.roles}, - - - is_leader = #{record.isLeader}, - - - face_url = #{record.faceUrl}, - - - create_time = #{record.createTime}, - - - language = #{record.language}, - - - user_status = #{record.userStatus}, - - - third_oa_unique_flag = #{record.thirdOaUniqueFlag}, - - - subordinate_change = #{record.subordinateChange}, - - - update_time = #{record.updateTime}, - - - subordinate_range = #{record.subordinateRange}, - - - is_leader_in_depts = #{record.isLeaderInDepts}, - - - department = #{record.department}, - - - jobnumber = #{record.jobnumber}, - - - monitored_departments = #{record.monitoredDepartments}, - - - departments = #{record.departments}, - - - user_region_ids = #{record.userRegionIds}, - - - where id = #{record.id} - - - - - - - insert into enterprise_user ( - id, - user_id, - `name`, - mobile, - email, - active, - order_in_depts, - main_admin, - is_admin, - is_boss, - dingId, - unionid, - is_leader_in_depts, - is_hide, - departments, - `position`, - avatar, - jobnumber, - extattr, - roles, - is_leader, - create_time - ) values - - - - ( - #{it.id, jdbcType=VARCHAR}, - #{it.userId, jdbcType=VARCHAR}, - #{it.name, jdbcType=VARCHAR}, - #{it.mobile, jdbcType=VARCHAR}, - #{it.email, jdbcType=VARCHAR}, - #{it.active, jdbcType=BOOLEAN}, - #{it.orderInDepts, jdbcType=VARCHAR}, - #{it.mainAdmin, jdbcType=BOOLEAN}, - #{it.isAdmin, jdbcType=BOOLEAN}, - #{it.isBoss, jdbcType=BOOLEAN}, - #{it.dingid, jdbcType=VARCHAR}, - #{it.unionid, jdbcType=VARCHAR}, - #{it.isLeaderInDepts, jdbcType=VARCHAR}, - #{it.isHide, jdbcType=BOOLEAN}, - #{it.departments, jdbcType=VARCHAR}, - #{it.position, jdbcType=VARCHAR}, - #{it.avatar, jdbcType=VARCHAR}, - #{it.jobnumber, jdbcType=VARCHAR}, - #{it.extattr, jdbcType=VARCHAR}, - #{it.roles, jdbcType=VARCHAR}, - #{it.isLeader, jdbcType=BOOLEAN}, - sysdate() - ) - - ON DUPLICATE KEY UPDATE - departments=values(departments), - `name`=values(name), - main_admin=values(main_admin), - is_admin=values(is_admin), - mobile = values(mobile), - order_in_depts=values(order_in_depts), - is_leader_in_depts=values(is_leader_in_depts), - avatar=values(avatar), - active=values(active), - `position`=values(position), - roles=values(roles), - jobnumber=values(jobnumber) - - - - update enterprise_user - set user_region_ids = - - when #{item.userId} then #{item.userRegionIds} - - where user_id in - - #{item.userId} - - - - - - - - - - - - - - - - update enterprise_user - - `name` = #{enterpriseUserDO.name}, - `tel` = #{enterpriseUserDO.tel}, - `work_place` = - #{enterpriseUserDO.workPlace}, - - `mobile` = - #{enterpriseUserDO.mobile}, - - `email` = #{enterpriseUserDO.email}, - - `org_email` = - #{enterpriseUserDO.orgEmail}, - - `active` = - #{enterpriseUserDO.active}, - - `order_in_depts` = - #{enterpriseUserDO.orderInDepts}, - - `main_admin` = #{enterpriseUserDO.mainAdmin}, - `is_admin` = #{enterpriseUserDO.isAdmin}, - `is_boss` = #{enterpriseUserDO.isBoss}, - `dingId` = - #{enterpriseUserDO.dingid}, - - `unionid` = - #{enterpriseUserDO.unionid}, - - - `is_leader_in_depts` = #{enterpriseUserDO.isLeaderInDepts}, - - `is_hide` = #{enterpriseUserDO.isHide}, - - `position` = - #{enterpriseUserDO.position}, - - `avatar` = - #{enterpriseUserDO.avatar}, - - `jobnumber` = - #{enterpriseUserDO.jobnumber}, - - `extattr` = - #{enterpriseUserDO.extattr}, - - `is_enterprise` = - #{enterpriseUserDO.isEnterprise}, - - `roles` = #{enterpriseUserDO.roles}, - - ` - monitored_departments` = #{enterpriseUserDO.monitoredDepartments}, - - `departments` = - #{enterpriseUserDO.departments}, - - `is_leader` = #{enterpriseUserDO.isLeader}, - `face_url` = - #{enterpriseUserDO.faceUrl}, - - `create_time` = #{enterpriseUserDO.createTime}, - `language` = - #{enterpriseUserDO.language}, - - `user_status` = - #{enterpriseUserDO.userStatus}, - - `third_oa_unique_flag` = - #{enterpriseUserDO.thirdOaUniqueFlag}, - - - `user_region_ids` = #{enterpriseUserDO.userRegionIds}, - - - `subordinate_change` = #{enterpriseUserDO.subordinateChange}, - - - `subordinate_range` = #{enterpriseUserDO.subordinateRange}, - - - `remark` = #{enterpriseUserDO.remark}, - - - where user_id =#{enterpriseUserDO.userId} - - - - - - - - - - - - insert into enterprise_user - ( `id`, - `user_id`, - `name`, - `tel`, - `work_place`, - `remark`, - `mobile`, - `email`, - `org_email`, - `active`, - `order_in_depts`, - `main_admin`, - `is_admin`, - `is_boss`, - `dingId`, - `unionid`, - `is_leader_in_depts`, - `is_hide`, - `position`, - `avatar`, - `jobnumber`, - `extattr`, - `is_enterprise`, - `roles`, - `monitored_departments`, - `departments`, - `is_leader`, - `face_url`, - `create_time`, - `user_status`, - `third_oa_unique_flag`, - `subordinate_range` - ) - values - ( - #{entity.id}, - #{entity.userId}, - #{entity.name}, - #{entity.tel}, - #{entity.workPlace}, - #{entity.remark}, - #{entity.mobile}, - #{entity.email}, - #{entity.orgEmail}, - #{entity.active}, - #{entity.orderInDepts}, - #{entity.mainAdmin}, - #{entity.isAdmin}, - #{entity.isBoss}, - #{entity.dingid}, - #{entity.unionid}, - #{entity.isLeaderInDepts}, - #{entity.isHide}, - #{entity.position}, - #{entity.avatar}, - #{entity.jobnumber}, - #{entity.extattr}, - #{entity.isEnterprise}, - #{entity.roles}, - #{entity.monitoredDepartments}, - #{entity.departments}, - #{entity.isLeader}, - #{entity.faceUrl}, - now(), - #{entity.userStatus}, - #{entity.thirdOaUniqueFlag}, - #{entity.subordinateRange} - ) - - - \ 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 69dfc9cff..5d630b0d2 100644 --- a/coolstore-partner-dao/src/test/resources/mybatis-generator.properties +++ b/coolstore-partner-dao/src/test/resources/mybatis-generator.properties @@ -1,6 +1,6 @@ jdbc.driver = com.mysql.cj.jdbc.Driver -jdbc.url = jdbc:mysql://dingpushcoolcollege.mysql.rds.aliyuncs.com:3306/coolcollege_intelligent_base?useSSL=false&useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&autoReconnect=true +jdbc.url = jdbc:mysql://dingpushcoolcollege.mysql.rds.aliyuncs.com:3306/coolcollege_intelligent_hy?useSSL=false&useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&autoReconnect=true jdbc.user= coolstore jdbc.password = CSCErYcXniNYm7bT -table.name = enterprise_user_department_e88b6a2bc1334164b54977a4dbfe5d9d \ No newline at end of file +table.name = enterprise_user \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/DatasourceInfoDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/DatasourceInfoDTO.java deleted file mode 100644 index f69790dc9..000000000 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/DatasourceInfoDTO.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.cool.store.dto; - -import com.cool.store.entity.EnterpriseConfigDO; -import lombok.Data; -import org.apache.commons.collections4.CollectionUtils; - -import java.util.ArrayList; -import java.util.List; - -/** - * @author zhangchenbiao - * @FileName: DatasourceInfoDTO - * @Description: - * @date 2023-05-18 14:28 - */ -@Data -public class DatasourceInfoDTO { - - /** - * serverurl - */ - private String dbServer; - - /** - * 端口 - */ - private Integer dbPort; - - /** - * 数据库用户 - */ - private String dbUser; - - /** - * 数据库密码 - */ - private String dbPwd; - - /** - * dbName - */ - private String dbName; - - - public static List convertList(List configList){ - if (CollectionUtils.isEmpty(configList)) { - return null; - } - List resultList = new ArrayList<>(); - for (EnterpriseConfigDO enterpriseConfig : configList) { - DatasourceInfoDTO datasource = new DatasourceInfoDTO(); - datasource.setDbServer(enterpriseConfig.getDbServer()); - datasource.setDbPort(enterpriseConfig.getDbPort()); - datasource.setDbUser(enterpriseConfig.getDbUser()); - datasource.setDbPwd(enterpriseConfig.getDbPwd()); - datasource.setDbName(enterpriseConfig.getDbName()); - resultList.add(datasource); - } - return resultList; - } - -} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/enterprise/EnterpriseInitDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/enterprise/EnterpriseInitDTO.java deleted file mode 100644 index 78a68eb1d..000000000 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/enterprise/EnterpriseInitDTO.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.cool.store.dto.enterprise; - -import lombok.Data; - -/** - * @author chenyupeng - * @since 2022/1/26 - */ -@Data -public class EnterpriseInitDTO { - - private String appType; - - private String corpId; - - private String eid; - - private String dbName; - - private String userId; -} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/enterprise/EnterpriseOpenMsg.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/enterprise/EnterpriseOpenMsg.java deleted file mode 100644 index ed14718ff..000000000 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/enterprise/EnterpriseOpenMsg.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.cool.store.dto.enterprise; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * 企业开通相关的参数 - * @author :xugangkun - * @date :2022/2/11 14:14 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -public class EnterpriseOpenMsg { - - /** - * 企业id - */ - private String eid; - - /** - * corpId - */ - private String corpId; - - /** - * 开通类型 - */ - private String appType; - - /** - * 授权用户id - */ - private String authUserId; - - /** - * 数据库名 - */ - private String dbName; - -} 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 b5a341022..23aa06534 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 @@ -132,8 +132,6 @@ public class EnterpriseUserDTO implements Serializable { public static EnterpriseUserDO transUserDtoToDo(EnterpriseUserDTO enterpriseUserDTO) { EnterpriseUserDO enterpriseUserDO = new EnterpriseUserDO(); - enterpriseUserDO.setTel(enterpriseUserDTO.getTel()); - enterpriseUserDO.setWorkPlace(enterpriseUserDTO.getWorkPlace()); enterpriseUserDO.setRemark(enterpriseUserDTO.getRemark()); enterpriseUserDO.setPosition(enterpriseUserDTO.getPosition()); enterpriseUserDO.setMobile(enterpriseUserDTO.getMobile()); @@ -142,12 +140,8 @@ public class EnterpriseUserDTO implements Serializable { enterpriseUserDO.setName(enterpriseUserDTO.getName()); enterpriseUserDO.setEmail(enterpriseUserDTO.getEmail()); enterpriseUserDO.setOrgEmail(enterpriseUserDTO.getOrgEmail()); - enterpriseUserDO.setActive(Boolean.TRUE); - enterpriseUserDO.setIsBoss(enterpriseUserDTO.getIsBoss()); enterpriseUserDO.setUnionid(enterpriseUserDTO.getUnionid()); enterpriseUserDO.setAvatar(enterpriseUserDTO.getAvatar()); - enterpriseUserDO.setIsLeaderInDepts(JSONObject.toJSONString(enterpriseUserDTO.getIsLeaderInDepts())); - enterpriseUserDO.setExtattr(enterpriseUserDTO.getExtattr()); enterpriseUserDO.setCreateTime(new Date()); enterpriseUserDO.setJobnumber(enterpriseUserDTO.getJobnumber()); return enterpriseUserDO; @@ -162,33 +156,17 @@ public class EnterpriseUserDTO implements Serializable { enterpriseUserDO.setName(dto.getName()); enterpriseUserDO.setId(dto.getId()); enterpriseUserDO.setUserId(dto.getUserId()); - enterpriseUserDO.setTel(dto.getTel()); - enterpriseUserDO.setWorkPlace(dto.getWorkPlace()); enterpriseUserDO.setRemark(dto.getRemark()); enterpriseUserDO.setMobile(dto.getMobile()); enterpriseUserDO.setEmail(dto.getEmail()); enterpriseUserDO.setOrgEmail(dto.getOrgEmail()); - enterpriseUserDO.setActive(dto.getActive()); - enterpriseUserDO.setOrderInDepts(dto.getOrderInDepts()); enterpriseUserDO.setIsAdmin(dto.getIsAdmin()); - enterpriseUserDO.setIsBoss(dto.getIsBoss()); - enterpriseUserDO.setDingid(dto.getDingid()); enterpriseUserDO.setUnionid(dto.getUnionid()); - enterpriseUserDO.setIsHide(dto.getIsHide()); enterpriseUserDO.setPosition(dto.getPosition()); enterpriseUserDO.setAvatar(dto.getAvatar()); - enterpriseUserDO.setExtattr(dto.getExtattr()); - enterpriseUserDO.setIsEnterprise(dto.getIsEnterprise()); - enterpriseUserDO.setRoles(dto.getRoles()); enterpriseUserDO.setIsLeader(dto.getIsLeader()); enterpriseUserDO.setCreateTime(dto.getCreateTime()); - enterpriseUserDO.setLanguage(dto.getLanguage()); - enterpriseUserDO.setIsLeaderInDepts(JSONObject.toJSONString(dto.getIsLeaderInDepts())); enterpriseUserDO.setJobnumber(dto.getJobnumber()); - enterpriseUserDO.setMonitoredDepartments(dto.getMonitoredDepartments()); - /*enterpriseUserDO.setAppType(dto.getAppType()); - enterpriseUserDO.setPassword(dto.getPassword());*/ - enterpriseUserDO.setThirdOaUniqueFlag(dto.getThirdOaUniqueFlag()); return enterpriseUserDO; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseConfigDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseConfigDO.java deleted file mode 100644 index 4f0814719..000000000 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseConfigDO.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.cool.store.entity; - -import java.io.Serializable; -import java.util.Date; - -import io.swagger.annotations.ApiModelProperty; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * - * @author zhangchenbiao - * @date 2023-05-18 11:09 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class EnterpriseConfigDO implements Serializable { - - @ApiModelProperty("自增主键") - private Long id; - - @ApiModelProperty("当前套餐") - private Long currentPackage; - - @ApiModelProperty("企业id") - private String enterpriseId; - - @ApiModelProperty("员工人数") - private Integer staffCount; - - @ApiModelProperty("数据库名称") - private String dbSourceName; - - @ApiModelProperty("数据库服务器") - private String dbServer; - - @ApiModelProperty("端口") - private Integer dbPort; - - @ApiModelProperty("数据库名称") - private String dbName; - - @ApiModelProperty("数据库用户") - private String dbUser; - - @ApiModelProperty("数据库密码") - private String dbPwd; - - @ApiModelProperty("授权私钥") - private String license; - - @ApiModelProperty("授权到期") - private Date licenseExpires; - - @ApiModelProperty("授权类型") - private Integer licenseType; - - @ApiModelProperty("钉钉业务id") - private String dingCorpId; - - @ApiModelProperty("钉钉秘钥") - private String dingCorpSecret; - - @ApiModelProperty("创建时间") - private Date createTime; - - @ApiModelProperty("创建人") - private String createUser; - - @ApiModelProperty("主应用Id") - private String mainCorpId; - - @ApiModelProperty("来源类型:默认dingding钉钉,qw企业微信 mobile") - private String appType; - - @ApiModelProperty("授权码") - private String permanentCode; - - @ApiModelProperty("应用id") - private String agentid; - - @ApiModelProperty("开通酷学院企业映射的企业id") - private String coolCollegeEnterpriseId; - - @ApiModelProperty("开通酷学院企业返回的企业秘钥") - private String coolCollegeSecret; -} \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseDO.java deleted file mode 100644 index a94dd78fc..000000000 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseDO.java +++ /dev/null @@ -1,102 +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; -import java.util.Date; - -/** - * - * @author zhangchenbiao - * @date 2023-05-23 11:36 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class EnterpriseDO implements Serializable { - @ApiModelProperty("企业主键") - private String id; - - @ApiModelProperty("企业名称") - private String name; - - @ApiModelProperty("原始名称") - private String originalName; - - @ApiModelProperty("电话") - private String mobile; - - @ApiModelProperty("省") - private String province; - - @ApiModelProperty("市") - private String city; - - @ApiModelProperty("状态") - private Integer status; - - @ApiModelProperty("") - private String logo; - - @ApiModelProperty("用户类型(1:普通用户 2:付费用户 3:试用用户 4:共创用户)") - private Integer isVip; - - @ApiModelProperty("授权人数") - private Integer authType; - - @ApiModelProperty("") - private String authUserId; - - @ApiModelProperty("") - private String industry; - - @ApiModelProperty("logo名称") - private String logoName; - - @ApiModelProperty("企业logo") - private String corpLogoUrl; - - @ApiModelProperty("企业是否认证") - private Integer isAuthenticated; - - @ApiModelProperty("企业认证等级,0:未认证,1:高级认证,2:中级认证,3:初级认证") - private Integer authLevel; - - @ApiModelProperty("注册时间") - private Date createTime; - - @ApiModelProperty("修改时间") - private Date updateTime; - - @ApiModelProperty("套餐开始时间") - private Date packageBeginDate; - - @ApiModelProperty("套餐结束时间") - private Date packageEndDate; - - @ApiModelProperty("人员分组的cropId") - private String aliyunPersonGroupCropId; - - @ApiModelProperty("来源类型:默认dingding钉钉,qw企业微信 mobile") - private String appType; - - @ApiModelProperty("企业标签") - private String tag; - - @ApiModelProperty("数仓设置") - private String datawareConfig; - - @ApiModelProperty("是否留资") - private Boolean isLeaveInfo; - - @ApiModelProperty("限制的门店数量") - private Integer limitStoreCount; - - @ApiModelProperty("设备数量") - private Integer limitDeviceCount; -} \ No newline at end of file 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 deleted file mode 100644 index 866587065..000000000 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserDO.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.cool.store.entity; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * - * @author zhangchenbiao - * @date 2023-05-19 02:58 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class EnterpriseUserDO implements Serializable { - - @ApiModelProperty("用户主键id") - private String id; - - @ApiModelProperty("钉钉用户id") - private String userId; - - @ApiModelProperty("") - private String name; - - @ApiModelProperty("分机号") - private String tel; - - @ApiModelProperty("") - private String workPlace; - - @ApiModelProperty("备注") - private String remark; - - @ApiModelProperty("手机号码") - private String mobile; - - @ApiModelProperty("员工的电子邮箱") - private String email; - - @ApiModelProperty("员工的企业邮箱") - private String orgEmail; - - @ApiModelProperty("是否已经激活, true表示已激活, false表示未激活") - private Boolean active; - - @ApiModelProperty("") - private String orderInDepts; - - @ApiModelProperty("是否是主管理员,0:否,1:是") - private Boolean mainAdmin; - - @ApiModelProperty("是否为企业的管理员, true表示是, false表示不是") - private Boolean isAdmin; - - @ApiModelProperty("是否为企业的老板, true表示是, false表示不是") - private Boolean isBoss; - - @ApiModelProperty("钉钉Id,在钉钉全局范围内标识用户的身份,但用户可以自行修改一次") - private String dingid; - - @ApiModelProperty("在当前isv全局范围内唯一标识一个用户的身份,用户无法修改") - private String unionid; - - @ApiModelProperty("是否号码隐藏, true表示隐藏, false表示不隐藏") - private Boolean isHide; - - @ApiModelProperty("") - private String position; - - @ApiModelProperty("头像url") - private String avatar; - - @ApiModelProperty("扩展属性,可以设置多种属性(但手机上最多只能显示10个扩展属性,具体显示哪些属性,请到OA管理后台->设置->通讯录信息设置和OA管理后台->设置->手机端显示信息设置)性") - private String extattr; - - @ApiModelProperty("") - private Boolean isEnterprise; - - @ApiModelProperty("") - private String roles; - - @ApiModelProperty("是否是部门的主管, true表示是, false表示不是") - private Boolean isLeader; - - @ApiModelProperty("人脸照片url") - private String faceUrl; - - @ApiModelProperty("用户创建时间") - private Date createTime; - - @ApiModelProperty("用户语言环境:en_us/英语_美国,zh_cn/中文_简体,zh_hk/中文_繁体_HK") - private String language; - - @ApiModelProperty("用户状态 0待审核 1正常 2冻结") - private Integer userStatus; - - @ApiModelProperty("第三方OA系统唯一标识") - private String thirdOaUniqueFlag; - - @ApiModelProperty("下级是否变动,0 没变动,1 变动") - private Integer subordinateChange; - - @ApiModelProperty("修改时间") - private Date updateTime; - - @ApiModelProperty("管辖用户范围:self-仅自己,all-全部人员,define-自定义") - private String subordinateRange; - - @ApiModelProperty("") - private String isLeaderInDepts; - - @ApiModelProperty("") - private String department; - - @ApiModelProperty("工号") - private String jobnumber; - - @ApiModelProperty("") - private String monitoredDepartments; - - @ApiModelProperty("部门全路径") - private String departments; - - @ApiModelProperty("部门集合(region_ids)") - private String userRegionIds; -} \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserDepartmentDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserDepartmentDO.java deleted file mode 100644 index de4e2e28b..000000000 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserDepartmentDO.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.cool.store.entity; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * - * @author zhangchenbiao - * @date 2023-06-02 05:01 - */ -@Data -public class EnterpriseUserDepartmentDO implements Serializable { - @ApiModelProperty("") - private Integer id; - - @ApiModelProperty("用户id") - private String userId; - - @ApiModelProperty("部门id") - private String departmentId; - - @ApiModelProperty("创建时间") - private Date createTime; - - @ApiModelProperty("更新时间") - private Date updateTime; - - @ApiModelProperty("是否是部门权限数据:0否,1是") - private Boolean isHasAuth; - - public EnterpriseUserDepartmentDO(String userId, String departmentId, Boolean isHasAuth) { - this.userId = userId; - this.departmentId = departmentId; - this.isHasAuth = isHasAuth; - } - - public EnterpriseUserDepartmentDO() {} -} \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserGroupDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserGroupDO.java deleted file mode 100644 index 782f1dfec..000000000 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserGroupDO.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.cool.store.entity; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * - * @author zhangchenbiao - * @date 2023-05-31 02:43 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class EnterpriseUserGroupDO implements Serializable { - @ApiModelProperty("主键") - private Long id; - - @ApiModelProperty("组别id") - private String groupId; - - @ApiModelProperty("组别名称") - private String groupName; - - @ApiModelProperty("创建时间") - private Date createTime; - - @ApiModelProperty("创建人id") - private String createUserId; - - @ApiModelProperty("更新时间") - private Date updateTime; - - @ApiModelProperty("更新人") - private String updateUserId; - - @ApiModelProperty("删除标识") - private Boolean deleted; - - @ApiModelProperty("共同编辑人userId集合(前后逗号分隔)") - private String commonEditUserids; -} \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserGroupMappingDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserGroupMappingDO.java deleted file mode 100644 index 9de064e32..000000000 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/EnterpriseUserGroupMappingDO.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.cool.store.entity; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * - * @author zhangchenbiao - * @date 2023-05-31 02:43 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class EnterpriseUserGroupMappingDO implements Serializable { - @ApiModelProperty("主键") - private Long id; - - @ApiModelProperty("用户id") - private String userId; - - @ApiModelProperty("组别id") - private String groupId; - - @ApiModelProperty("创建时间") - private Date createTime; - - @ApiModelProperty("创建人id") - private String createUserId; - - @ApiModelProperty("更新时间") - private Date updateTime; - - @ApiModelProperty("更新人") - private String updateUserId; - - @ApiModelProperty("删除标识") - private Boolean deleted; -} \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/StoreDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/StoreDO.java deleted file mode 100644 index 69aa480d6..000000000 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/StoreDO.java +++ /dev/null @@ -1,133 +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-31 11:51 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class StoreDO implements Serializable { - @ApiModelProperty("自增ID") - private Long id; - - @ApiModelProperty("门店ID") - private String storeId; - - @ApiModelProperty("门店名称") - private String storeName; - - @ApiModelProperty("门店编号") - private String storeNum; - - @ApiModelProperty("门头照") - private String avatar; - - @ApiModelProperty("钉钉id") - private String dingId; - - @ApiModelProperty("所属区域id") - private Long regionId; - - @ApiModelProperty("省") - private String province; - - @ApiModelProperty("市") - private String city; - - @ApiModelProperty("区") - private String county; - - @ApiModelProperty("门店地址") - private String storeAddress; - - @ApiModelProperty("定位地址") - private String locationAddress; - - @ApiModelProperty("锁定定位:locked/锁定,not_locked/未锁定") - private String isLock; - - @ApiModelProperty("经纬度") - private String longitudeLatitude; - - @ApiModelProperty("经度") - private String longitude; - - @ApiModelProperty("纬度") - private String latitude; - - @ApiModelProperty("状态:effective/有效,invalid/失效,ignored/不可用, unSync/未同步") - private String isDelete; - - @ApiModelProperty("电话号码") - private String telephone; - - @ApiModelProperty("营业时间") - private String businessHours; - - @ApiModelProperty("门店面积") - private String storeAcreage; - - @ApiModelProperty("门店带宽") - private String storeBandwidth; - - @ApiModelProperty("创建时间") - private Long createTime; - - @ApiModelProperty("创建人") - private String createName; - - @ApiModelProperty("创建人id") - private String createUser; - - @ApiModelProperty("更新时间") - private Long updateTime; - - @ApiModelProperty("更新人") - private String updateName; - - @ApiModelProperty("修改人id") - private String updateUser; - - @ApiModelProperty("阿里云corpId") - private String aliyunCorpId; - - @ApiModelProperty("门店来源") - private String source; - - @ApiModelProperty("vds的corpId") - private String vdsCorpId; - - @ApiModelProperty("dinging部门id") - private String synDingDeptId; - - @ApiModelProperty("区域路径") - private String regionPath; - - @ApiModelProperty("是否绑定绑定摄像头,0:未绑定;1:已绑定") - private Boolean hasCamera; - - @ApiModelProperty("门店状态(open:营业;closed:闭店;not_open:未开业)") - private String storeStatus; - - @ApiModelProperty("第三方唯一id") - private String thirdDeptId; - - @ApiModelProperty("备注") - private String remark; - - @ApiModelProperty("动态扩展字段") - private String extendField; - - @ApiModelProperty("地址经纬度point") - private String addressPoint; -} \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/SubordinateMappingDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/SubordinateMappingDO.java deleted file mode 100644 index 40eb0a738..000000000 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/SubordinateMappingDO.java +++ /dev/null @@ -1,52 +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-31 02:27 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class SubordinateMappingDO implements Serializable { - @ApiModelProperty("主键") - private Integer id; - - @ApiModelProperty("用户ID") - private String userId; - - @ApiModelProperty("部门ID") - private String regionId; - - @ApiModelProperty("人员ID") - private String personalId; - - @ApiModelProperty("0 下属 , 1 直属上级") - private Integer type; - - @ApiModelProperty("创建人") - private String createId; - - @ApiModelProperty("创建时间") - private Long createTime; - - @ApiModelProperty("更新人") - private String updateId; - - @ApiModelProperty("更新时间") - private Long updateTime; - - @ApiModelProperty("管辖用户范围:self-仅自己,all-全部人员,define-自定义") - private String userRange; - - @ApiModelProperty("auto自动关联 select手动选择") - private String source; -} \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/UserAuthMappingDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/UserAuthMappingDO.java deleted file mode 100644 index 200fae318..000000000 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/UserAuthMappingDO.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.cool.store.entity; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import lombok.Data; - -/** - * - * @author zhangchenbiao - * @date 2023-05-19 02:54 - */ -@Data -public class UserAuthMappingDO implements Serializable { - - @ApiModelProperty("主键") - private Long id; - - @ApiModelProperty("用户ID") - private String userId; - - @ApiModelProperty("映射主键(区域或者是门店)") - private String mappingId; - - @ApiModelProperty("映射类型 region (区域) store(门店)") - private String type; - - @ApiModelProperty("来源:create-数智门店创建 sync-钉钉同步") - private String source; - - @ApiModelProperty("创建人") - private String createId; - - @ApiModelProperty("创建时间") - private Long createTime; - - @ApiModelProperty("更新人") - private String updateId; - - @ApiModelProperty("更新时间") - private Long updateTime; - - public UserAuthMappingDO(String userId, String mappingId, String type, String source, String createId, Long createTime) { - this.userId = userId; - this.mappingId = mappingId; - this.type = type; - this.source = source; - this.createId = createId; - this.createTime = createTime; - } - - public UserAuthMappingDO(){} -} \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/buser/EnterpriseUserPageVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/buser/EnterpriseUserPageVO.java index f02e4beef..372f21e57 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/buser/EnterpriseUserPageVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/buser/EnterpriseUserPageVO.java @@ -1,7 +1,6 @@ package com.cool.store.vo.buser; import com.cool.store.dto.auth.AuthRegionStoreUserDTO; -import com.cool.store.entity.EnterpriseUserDO; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Builder; @@ -88,7 +87,7 @@ public class EnterpriseUserPageVO implements Serializable { private Boolean selectFlag; - public static List transUserDOToVO(List enterpriseUserList) { + /*public static List transUserDOToVO(List enterpriseUserList) { List resultList = new ArrayList<>(); for (EnterpriseUserDO enterpriseUserDTO : enterpriseUserList) { EnterpriseUserPageVO enterpriseUserDO = new EnterpriseUserPageVO(); @@ -107,6 +106,6 @@ public class EnterpriseUserPageVO implements Serializable { resultList.add(enterpriseUserDO); } return resultList; - } + }*/ } \ No newline at end of file diff --git a/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java b/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java index 5c294088f..f6f6a38c4 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java @@ -8,6 +8,7 @@ import com.cool.store.dto.enterprise.SysDepartmentDTO; import com.cool.store.dto.login.UserIdInfoDTO; import com.cool.store.dto.response.ResultDTO; import com.cool.store.entity.EnterpriseUserDO; +import com.cool.store.mq.util.HttpRestTemplateService; import com.cool.store.request.EnterpriseUserRequest; import com.cool.store.utils.RestTemplateUtil; import com.google.common.collect.Lists; @@ -17,6 +18,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -34,10 +36,8 @@ public class ISVHttpRequest { @Value("${isv.domain:null}") private String isvDomain; - - @Value("${get.user.id.by.code:null}") - private String getUserIdByCode; - + @Resource + private HttpRestTemplateService httpRestTemplateService; public UserIdInfoDTO getUserIdByCode(String paramStr){ String url = isvDomain + "/isv/user/getUserIdByCode?" + paramStr; @@ -54,18 +54,16 @@ public class ISVHttpRequest { return null; } - public EnterpriseUserDTO getUserDetailByUserId(String corpId, String userId, String appType){ + public EnterpriseUserDTO getUserDetailByUserId(String userId){ String url = isvDomain + "/isv/user/getUserDetail"; HashMap requestMap = new HashMap(); - requestMap.put("corpId", corpId); requestMap.put("userId", userId); - requestMap.put("appType", appType); - ResponseEntity responseEntity = null; + ResultDTO responseEntity = null; try { - responseEntity = RestTemplateUtil.get(url, ResultDTO.class, requestMap); + responseEntity = httpRestTemplateService.getForObject(url, ResultDTO.class, requestMap); log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity)); - if(Objects.nonNull(responseEntity.getBody()) && responseEntity.getBody().isSuccess()){ - return JSONObject.parseObject(JSONObject.toJSONString(responseEntity.getBody().getData()), EnterpriseUserDTO.class); + if(Objects.nonNull(responseEntity.getData()) && responseEntity.isSuccess()){ + return JSONObject.parseObject(JSONObject.toJSONString(responseEntity.getData()), EnterpriseUserDTO.class); } } catch (Exception e) { log.info("调用isv出错{}", e); @@ -73,17 +71,15 @@ public class ISVHttpRequest { return null; } - public List getAdminUserList(String corpId, String appType){ + public List getAdminUserList(){ String url = isvDomain + "/isv/corp/getAdminUserList"; HashMap requestMap = new HashMap(); - requestMap.put("corpId", corpId); - requestMap.put("appType", appType); - ResponseEntity responseEntity = null; + ResultDTO responseEntity = null; try { - responseEntity = RestTemplateUtil.get(url, ResultDTO.class, requestMap); + responseEntity = httpRestTemplateService.getForObject(url, ResultDTO.class, requestMap); log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity)); - if(Objects.nonNull(responseEntity.getBody()) && responseEntity.getBody().isSuccess()){ - return JSONObject.parseArray(JSONObject.toJSONString(responseEntity.getBody().getData()), String.class); + if(Objects.nonNull(responseEntity.getData()) && responseEntity.isSuccess()){ + return JSONObject.parseArray(JSONObject.toJSONString(responseEntity.getData()), String.class); } } catch (Exception e) { log.info("调用isv出错{}", e); @@ -91,17 +87,15 @@ public class ISVHttpRequest { return null; } - public AuthInfoDTO getAuthInfo(String corpId, String appType){ + public AuthInfoDTO getAuthInfo(){ String url = isvDomain + "/isv/corp/getAuthInfo"; HashMap requestMap = new HashMap(); - requestMap.put("corpId", corpId); - requestMap.put("appType", appType); - ResponseEntity responseEntity = null; + ResultDTO responseEntity = null; try { - responseEntity = RestTemplateUtil.get(url, ResultDTO.class, requestMap); + responseEntity = httpRestTemplateService.getForObject(url, ResultDTO.class, requestMap); log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity)); - if(Objects.nonNull(responseEntity.getBody()) && responseEntity.getBody().isSuccess()){ - return JSONObject.parseObject(JSONObject.toJSONString(responseEntity.getBody().getData()), AuthInfoDTO.class); + if(Objects.nonNull(responseEntity.getData()) && responseEntity.isSuccess()){ + return JSONObject.parseObject(JSONObject.toJSONString(responseEntity.getData()), AuthInfoDTO.class); } } catch (Exception e) { log.info("调用isv出错{}", e); @@ -109,18 +103,16 @@ public class ISVHttpRequest { return null; } - public List getDepartments(String corpId, String appType, String parentId){ + public List getDepartments(String parentId){ String url = isvDomain + "/isv/corp/getDepartments"; HashMap requestMap = new HashMap(); - requestMap.put("corpId", corpId); - requestMap.put("appType", appType); requestMap.put("parentId", parentId); - ResponseEntity responseEntity = null; + ResultDTO responseEntity = null; try { - responseEntity = RestTemplateUtil.get(url, ResultDTO.class, requestMap); + responseEntity = httpRestTemplateService.getForObject(url, ResultDTO.class, requestMap); log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity)); - if(Objects.nonNull(responseEntity.getBody()) && responseEntity.getBody().isSuccess()){ - return JSONObject.parseArray(JSONObject.toJSONString(responseEntity.getBody().getData()), SysDepartmentDTO.class); + if(Objects.nonNull(responseEntity.getData()) && responseEntity.isSuccess()){ + return JSONObject.parseArray(JSONObject.toJSONString(responseEntity.getData()), SysDepartmentDTO.class); } } catch (Exception e) { log.info("调用isv出错{}", e); @@ -128,17 +120,15 @@ public class ISVHttpRequest { return null; } - public AuthScopeDTO getAuthScope(String corpId, String appType){ + public AuthScopeDTO getAuthScope(){ String url = isvDomain + "/isv/corp/getAuthScope"; HashMap requestMap = new HashMap(); - requestMap.put("corpId", corpId); - requestMap.put("appType", appType); - ResponseEntity responseEntity = null; + ResultDTO responseEntity = null; try { - responseEntity = RestTemplateUtil.get(url, ResultDTO.class, requestMap); + responseEntity = httpRestTemplateService.getForObject(url, ResultDTO.class, requestMap); log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity)); - if(Objects.nonNull(responseEntity.getBody()) && responseEntity.getBody().isSuccess()){ - return JSONObject.parseObject(JSONObject.toJSONString(responseEntity.getBody().getData()), AuthScopeDTO.class); + if(Objects.nonNull(responseEntity.getData()) && responseEntity.isSuccess()){ + return JSONObject.parseObject(JSONObject.toJSONString(responseEntity.getData()), AuthScopeDTO.class); } } catch (Exception e) { log.info("调用isv出错{}", e); @@ -146,18 +136,16 @@ public class ISVHttpRequest { return null; } - public List getDepartmentUsers(String corpId, String appType, String deptId){ + public List getDepartmentUsers(String deptId){ String url = isvDomain + "/isv/corp/getDepartmentUsers"; HashMap requestMap = new HashMap(); - requestMap.put("corpId", corpId); - requestMap.put("appType", appType); requestMap.put("deptId", deptId); - ResponseEntity responseEntity = null; + ResultDTO responseEntity = null; try { - responseEntity = RestTemplateUtil.get(url, ResultDTO.class, requestMap); + responseEntity = httpRestTemplateService.getForObject(url, ResultDTO.class, requestMap); log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity)); - if(Objects.nonNull(responseEntity.getBody()) && responseEntity.getBody().isSuccess()){ - return JSONObject.parseArray(JSONObject.toJSONString(responseEntity.getBody().getData()), EnterpriseUserDTO.class); + if(Objects.nonNull(responseEntity.getData()) && responseEntity.isSuccess()){ + return JSONObject.parseArray(JSONObject.toJSONString(responseEntity.getData()), EnterpriseUserDTO.class); } } catch (Exception e) { log.info("调用isv出错{}", e); @@ -165,18 +153,16 @@ public class ISVHttpRequest { return null; } - public List getUserDetailByUserIds(String corpId, List userIdList, String appType) { + public List getUserDetailByUserIds(List userIdList) { String url = isvDomain + "/isv/corp/getDepartmentUsers"; HashMap requestMap = new HashMap(); - requestMap.put("corpId", corpId); - requestMap.put("appType", appType); requestMap.put("userIds", userIdList); - ResponseEntity responseEntity = null; + ResultDTO responseEntity = null; try { - responseEntity = RestTemplateUtil.get(url, ResultDTO.class, requestMap); + responseEntity = httpRestTemplateService.getForObject(url, ResultDTO.class, requestMap); log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity)); - if(Objects.nonNull(responseEntity.getBody()) && responseEntity.getBody().isSuccess()){ - return JSONObject.parseArray(JSONObject.toJSONString(responseEntity.getBody().getData()), EnterpriseUserDTO.class); + if(Objects.nonNull(responseEntity.getData()) && responseEntity.isSuccess()){ + return JSONObject.parseArray(JSONObject.toJSONString(responseEntity.getData()), EnterpriseUserDTO.class); } } catch (Exception e) { log.info("调用isv出错{}", e); @@ -184,19 +170,17 @@ public class ISVHttpRequest { return null; } - public List getSubDepartments(String corpId, String appType, String parentId, Boolean fetchChild) { + public List getSubDepartments(String parentId, Boolean fetchChild) { String url = isvDomain + "/isv/corp/getSubDepartments"; HashMap requestMap = new HashMap(); - requestMap.put("corpId", corpId); - requestMap.put("appType", appType); requestMap.put("parentId", parentId); requestMap.put("fetchChild", fetchChild); - ResponseEntity responseEntity = null; + ResultDTO responseEntity = null; try { - responseEntity = RestTemplateUtil.get(url, ResultDTO.class, requestMap); + responseEntity = httpRestTemplateService.getForObject(url, ResultDTO.class, requestMap); log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity)); - if(Objects.nonNull(responseEntity.getBody()) && responseEntity.getBody().isSuccess()){ - return JSONObject.parseArray(JSONObject.toJSONString(responseEntity.getBody().getData()), SysDepartmentDTO.class); + if(Objects.nonNull(responseEntity.getData()) && responseEntity.isSuccess()){ + return JSONObject.parseArray(JSONObject.toJSONString(responseEntity.getData()), SysDepartmentDTO.class); } } catch (Exception e) { log.info("调用isv出错{}", e); @@ -204,8 +188,8 @@ public class ISVHttpRequest { return null; } - public List getDeptUsers(String corpId, String deptId, String appType) { - List departmentUsers = getDepartmentUsers(corpId, deptId, appType); + public List getDeptUsers(String deptId) { + List departmentUsers = getDepartmentUsers(deptId); if (CollectionUtils.isEmpty(departmentUsers)){ return Lists.newArrayList(); } @@ -217,10 +201,10 @@ public class ISVHttpRequest { enterpriseUser.setRemark(enterpriseUserDTO.getRemark()); enterpriseUser.setUserId(enterpriseUserDTO.getUserId()); if (enterpriseUserDTO.getIsLeaderInDepts() != null) { - enterpriseUser.setIsLeaderInDepts(JSONObject.toJSONString(enterpriseUserDTO.getIsLeaderInDepts())); + //enterpriseUser.setIsLeaderInDepts(JSONObject.toJSONString(enterpriseUserDTO.getIsLeaderInDepts())); } EnterpriseUserRequest enterpriseUserRequest = new EnterpriseUserRequest(); - enterpriseUserRequest.setEnterpriseUserDO(enterpriseUser); + //enterpriseUserRequest.setEnterpriseUserDO(enterpriseUser); if (CollectionUtils.isNotEmpty(enterpriseUserDTO.getDepartmentLists())) { enterpriseUserRequest.setDepartment(JSONObject.toJSONString(enterpriseUserDTO.getDepartmentLists())); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/TestListener.java b/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/TestListener.java index 24647b95f..fd7fd3ea6 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/TestListener.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/TestListener.java @@ -1,25 +1,14 @@ package com.cool.store.mq.consumer.listener; -import com.alibaba.fastjson.JSONObject; import com.aliyun.openservices.ons.api.Action; import com.aliyun.openservices.ons.api.ConsumeContext; import com.aliyun.openservices.ons.api.Message; import com.aliyun.openservices.ons.api.MessageListener; import com.cool.store.constants.CommonConstants; -import com.cool.store.dto.enterprise.EnterpriseInitDTO; -import com.cool.store.enums.AppTypeEnum; -import com.cool.store.enums.EnterpriseStatusEnum; -import com.cool.store.service.EnterpriseInitService; -import com.cool.store.utils.RedisUtilPool; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import java.text.MessageFormat; -import java.util.Arrays; - /** * 企业开通初始化 * diff --git a/coolstore-partner-service/src/main/java/com/cool/store/mq/util/HttpRestTemplateService.java b/coolstore-partner-service/src/main/java/com/cool/store/mq/util/HttpRestTemplateService.java new file mode 100644 index 000000000..aa06c324a --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/mq/util/HttpRestTemplateService.java @@ -0,0 +1,177 @@ +package com.cool.store.mq.util; + +import com.alibaba.fastjson.JSONObject; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.exception.ServiceException; +import com.google.common.collect.Lists; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.web.client.HttpStatusCodeException; +import org.springframework.web.client.RestClientException; +import org.springframework.web.client.RestTemplate; + +import java.util.List; +import java.util.Map; +import java.util.Objects; + +@Service +public class HttpRestTemplateService { + + @Autowired + private RestTemplate restTemplate; + + + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + /** + * 获取请求实体对象 + * + * @param object + * @param tenantAccessToken + * @return + */ + private HttpEntity getHttpEntity(Object object, String tenantAccessToken) { + return new HttpEntity(object, this.getHeaders(tenantAccessToken)); + } + + public T getForObject(String url, Class responseType, Map uriVariables , Map headMap) { + logger.info("getForObject start:url={},responseType={},uriVariables={}", url, responseType.getName(), + JSONObject.toJSONString(uriVariables)); + ResponseEntity result = null; + try { + //封装请求头 + HttpHeaders headers = new HttpHeaders(); + headMap.forEach((k, v)->{ + headers.add(k, v); + }); + HttpEntity> formEntity = new HttpEntity>(headers); + result = exchange(url, HttpMethod.GET, formEntity, responseType, uriVariables); + } catch (RestClientException e) { + logger.error("getForObject error:{}", e); + throw new ServiceException(ErrorCodeEnum.UNKNOWN); + } + logger.info("getForObject end:result={}", JSONObject.toJSONString(result)); + return result.getBody(); + } + + public T getForObject(String url, Class responseType, Map uriVariables) { + logger.info("getForObject start:url={},responseType={},uriVariables={}", url, responseType.getName(), JSONObject.toJSONString(uriVariables)); + T result = null; + try { + result = restTemplate.getForObject(transUrl(url, uriVariables), responseType, uriVariables); + } catch (RestClientException e) { + logger.error("getForObject error:{}", e); + throw new ServiceException(ErrorCodeEnum.UNKNOWN); + } + logger.info("getForObject end:result={}", JSONObject.toJSONString(result)); + return result; + } + + private String transUrl(String url, Map uriVariables) { + StringBuilder finalUrl = new StringBuilder(url); + if (Objects.isNull(uriVariables)) { + return finalUrl.toString(); + } + if (StringUtils.isNotBlank(url)) { + if (url.contains("?")) { + if (url.endsWith("?")) { + finalUrl.append("1=1"); + } + } else { + finalUrl.append("?1=1"); + } + uriVariables.forEach((k, v) -> { + finalUrl.append("&").append(k).append("={").append(k).append("}"); + }); + + } + return finalUrl.toString(); + } + + + public T postForObject(String url, Object request, Class responseType) { + logger.info("postForObject start:url={},request={},responseType={}", + url, JSONObject.toJSONString(request), responseType.getName()); + T result = null; + try { + result = restTemplate.postForObject(url, getHttpEntity(request, null), responseType); + } catch (RestClientException e) { + logger.error("postForObject error:{}", e); + throw e; + } + logger.info("postForObject end:result={}", JSONObject.toJSONString(result)); + return result; + } + + public T postForObject(String url, Object request, String tenantAccessToken, Class responseType) { + logger.info("postForObject start:url={},request={},responseType={}, tenantAccessToken:{}", + url, JSONObject.toJSONString(request), responseType.getName(), tenantAccessToken); + T result = null; + try { + result = restTemplate.postForObject(url, getHttpEntity(request, tenantAccessToken), responseType); + } catch (RestClientException e) { + logger.error("postForObject error:{}", JSONObject.toJSONString(result)); + logger.error("postForObject error:{}", e); + throw e; + } + logger.info("postForObject end:result={}", JSONObject.toJSONString(result)); + return result; + } + + + /** + * 获取Headers + * + * @param tenantAccessToken + * @return + */ + private MultiValueMap getHeaders(String tenantAccessToken) { + MultiValueMap headers = new LinkedMultiValueMap(); + if (StringUtils.isNotEmpty(tenantAccessToken)) { + headers.add("Authorization", "Bearer " + tenantAccessToken); + } + headers.add("Content-Type", "application/json"); + return headers; + } + + public ResponseEntity exchange(String uri, HttpMethod httpMethod, HttpEntity httpEntity, + Class responseEntity, Map params) { + List queryStrings = Lists.newArrayList(); + if (!CollectionUtils.isEmpty(params)) { + params.forEach((k, v) -> { + queryStrings.add(k + "=" + v); + }); + } + String queryString = null; + if (!CollectionUtils.isEmpty(queryStrings)) { + queryString = String.join("&", queryStrings); + } + if (StringUtils.isNotBlank(queryString)) { + uri = uri + "?" + queryString; + } + ResponseEntity exchange = null; + logger.info("start exchange=uri:{},httpMethod:{},httpEntity:{},responseEntity:{},params:{}", uri, + httpMethod.toString(), httpEntity.toString(), responseEntity.toString(), + Objects.nonNull(params) ? params.toString() : null); + try { + exchange = restTemplate.exchange(uri, httpMethod, httpEntity, responseEntity); + } catch (HttpStatusCodeException e) { + logger.error("exchange err, resp={}", e.getResponseBodyAsString()); + } catch (Exception e) { + logger.error("exchange err:", e); + } + logger.info("end exchange=exchange:{},", exchange); + return exchange; + } + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseConfigService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseConfigService.java deleted file mode 100644 index aac068c5c..000000000 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseConfigService.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.cool.store.service; - - -import com.cool.store.entity.EnterpriseConfigDO; - -import java.util.List; - - -public interface EnterpriseConfigService { - - EnterpriseConfigDO selectByEnterpriseId(); - - /** - * 根据dbName获取dbServer - * @param dbName - * @return - */ - EnterpriseConfigDO getDbInfoByDbName(String dbName); - - /** - * 获取dbServer - * @return - */ - List getDistinctDbServer(); - -} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseInitService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseInitService.java deleted file mode 100644 index c1b5d95fd..000000000 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseInitService.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.cool.store.service; - -import com.cool.store.dto.enterprise.EnterpriseOpenMsg; -import com.cool.store.enums.AppTypeEnum; - -import java.util.List; - -/** - * @author zhangchenbiao - * @FileName: EnterpriseInitService - * @Description: - * @date 2023-05-29 15:43 - */ -public interface EnterpriseInitService { - - void sync(String userName, String userId, Long regionId); -} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseSyncService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseSyncService.java new file mode 100644 index 000000000..df3532282 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseSyncService.java @@ -0,0 +1,12 @@ +package com.cool.store.service; + +/** + * @author zhangchenbiao + * @FileName: EnterpriseInitService + * @Description: + * @date 2023-05-29 15:43 + */ +public interface EnterpriseSyncService { + + void syncAll(); +} 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 9c4e815ce..3a7843fe9 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 @@ -1,5 +1,4 @@ package com.cool.store.service; - import com.cool.store.entity.EnterpriseUserDO; import com.cool.store.request.EnterpriseUserRequest; import com.cool.store.vo.buser.EnterpriseUserPageVO; @@ -23,14 +22,6 @@ public interface EnterpriseUserService { List initUserRole(List enterpriseUserList); - /** - * 获取人员所属部门 - * @param enterpriseId - * @param userIdList - * @return - */ - Map getUserRegion(List userIdList); - /** * 更新用户的部门全路径 * @param user @@ -38,6 +29,6 @@ public interface EnterpriseUserService { */ void updateUserDeptPath(EnterpriseUserRequest user, Map deptIdMap); - EnterpriseUserDO selectByUserIdIgnoreActive(String userId); + EnterpriseUserDO getUserInfoByUserId(String userId); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseConfigServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseConfigServiceImpl.java deleted file mode 100644 index d1fce6193..000000000 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseConfigServiceImpl.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.cool.store.service.impl; - -import com.cool.store.service.EnterpriseConfigService; -import com.cool.store.dao.EnterpriseConfigDAO; -import com.cool.store.entity.EnterpriseConfigDO; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.List; - -/** - * @ClassName EnterpriseConfigServiceImpl - * @Description 用一句话描述什么 - */ -@Service(value = "enterpriseConfigService") -@Slf4j -public class EnterpriseConfigServiceImpl implements EnterpriseConfigService { - - @Resource - private EnterpriseConfigDAO enterpriseConfigDAO; - - @Override - public EnterpriseConfigDO selectByEnterpriseId() { - //return enterpriseConfigDAO.selectByEnterpriseId(enterpriseId); - return null; - } - - @Override - public EnterpriseConfigDO getDbInfoByDbName(String dbName) { - return enterpriseConfigDAO.getDbInfoByDbName(dbName); - } - - @Override - public List getDistinctDbServer() { - return enterpriseConfigDAO.getDistinctDbServer(); - } - - -} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseInitServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseInitServiceImpl.java deleted file mode 100644 index a48fc0a7d..000000000 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseInitServiceImpl.java +++ /dev/null @@ -1,1344 +0,0 @@ -package com.cool.store.service.impl; - -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSONObject; -import com.cool.store.constants.CommonConstants; -import com.cool.store.dao.*; -import com.cool.store.dto.dept.SyncTreeNode; -import com.cool.store.dto.enterprise.*; -import com.cool.store.dto.region.RegionDTO; -import com.cool.store.dto.region.RegionNode; -import com.cool.store.dto.region.RegionSyncDTO; -import com.cool.store.entity.*; -import com.cool.store.enums.*; -import com.cool.store.exception.ServiceException; -import com.cool.store.http.ISVHttpRequest; -import com.cool.store.mq.producer.SimpleMessageService; -import com.cool.store.request.EnterpriseUserRequest; -import com.cool.store.service.EnterpriseInitService; -import com.cool.store.service.EnterpriseUserService; -import com.cool.store.service.RegionService; -import com.cool.store.utils.*; -import com.google.common.collect.Lists; -import javafx.util.Pair; -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.beans.factory.annotation.Autowired; -import org.springframework.core.io.ClassPathResource; -import org.springframework.core.io.support.EncodedResource; -import org.springframework.dao.DuplicateKeyException; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.*; -import java.util.concurrent.TimeUnit; -import java.util.function.Function; -import java.util.stream.Collectors; - -/** - * @author zhangchenbiao - * @FileName: EnterpriseInitService - * @Description: 企业初始化 - * @date 2023-05-26 16:28 - */ -@Slf4j -@Service -public class EnterpriseInitServiceImpl implements EnterpriseInitService { - - @Resource - protected ScriptUtil scriptUtil; - @Resource - private SysRoleDAO sysRoleDAO; - @Resource - private EnterpriseUserRoleDAO enterpriseUserRoleDAO; - @Resource - private EnterpriseUserDAO enterpriseUserDAO; - @Resource - private SimpleMessageService simpleMessageService; - @Resource - private ISVHttpRequest isvHttpRequest; - @Resource - private UserRegionMappingDAO userRegionMappingDAO; - @Resource - private RegionDAO regionDAO; - @Resource - private SysDepartmentDAO sysDepartmentDAO; - @Resource - private EnterpriseUserService enterpriseUserService; - @Resource - private EnterpriseConfigDAO enterpriseConfigDAO; - @Resource - private RedisConstantUtil redisConstantUtil; - @Resource - private RedisUtilPool redisUtilPool; - @Resource - private EnterpriseDAO enterpriseDAO; - @Autowired - private RedisUtil redisUtil; - @Resource - private RegionService regionService; - - @Override - public void sync(String userName, String userId, Long regionId) { - DataSourceHelper.reset(); - EnterpriseConfigDO enterpriseConfigDO = enterpriseConfigDAO.selectByEnterpriseId(); - try { - DataSourceHelper.changeToSpecificDataSource(enterpriseConfigDO.getDbName()); - newSyncFsDept(regionId); - //如果没有开通钉钉同步,需要先同步部门,人员同步根据部门同步 - syncSpecifyNodeUser(regionId, true); - }catch (Exception e){ - - } - } - - public void syncSpecifyNodeUser(Long regionId, Boolean isSyncRoleAndAuth) { - log.info("开始同步用户eid:{}"); - //前置准备:获得企业配置信息、数据库名等 - DataSourceHelper.reset(); - EnterpriseConfigDO config = enterpriseConfigDAO.selectByEnterpriseId(); - String corpId = config.getDingCorpId(); - String dbName = config.getDbName(); - //这次同步的用户id - Set dingUserIdList = new HashSet<>(); - //切换企业库 - DataSourceHelper.changeToSpecificDataSource(dbName); - RegionDO regionDO = regionDAO.getByRegionId(regionId); - - List deptList = new ArrayList<>(); - //遍历部门列表以及对应的用户列表 regionDO为null的时候遍历所有的用户 - if (regionId==null||regionDO==null){ - deptList = sysDepartmentDAO.getSyncDeptTreeList(); - }else { - //查询指定部门的子部门(包括当前部门) - String synDingDeptId = regionDO.getSynDingDeptId(); - List subDepts = new ArrayList<>(); - List subDepartmentList = isvHttpRequest.getSubDepartments(corpId, config.getAppType(),synDingDeptId,Boolean.TRUE); - for (SysDepartmentDTO sysDepartmentDTO : subDepartmentList) { - SyncTreeNode syncTreeNode = new SyncTreeNode(); - syncTreeNode.setId(sysDepartmentDTO.getId()); - syncTreeNode.setPid(sysDepartmentDTO.getParentId()); - syncTreeNode.setName(sysDepartmentDTO.getName()); - deptList.add(syncTreeNode); - } - for (SysDepartmentDO sysDepartmentDO: subDepts) { - SyncTreeNode syncTreeNode = new SyncTreeNode(); - syncTreeNode.setId(sysDepartmentDO.getId()); - syncTreeNode.setPid(sysDepartmentDO.getParentId()); - syncTreeNode.setName(sysDepartmentDO.getName()); - deptList.add(syncTreeNode); - } - } - - List deptIds = deptList.stream().map(SyncTreeNode::getId).collect(Collectors.toList()); - for (String deptId : deptIds) { - syncFsDeptUser(corpId, dbName, dingUserIdList, deptId, config.getAppType()); - } - log.info("dingUserIdList:{}",JSONObject.toJSONString(dingUserIdList)); - - DataSourceHelper.changeToSpecificDataSource(dbName); - - //删除门店库中和钉钉对应的用户、剩下的为待删除用户 - List coolUserIdList = new ArrayList<>(); - if (regionId!=null){ - coolUserIdList = enterpriseUserDAO.selectSpecifyNodeUserIds(regionDO.getSynDingDeptId()); - }else { - coolUserIdList = enterpriseUserDAO.selectAllUserId(); - } - List finalCoolUserIdList = coolUserIdList; - dingUserIdList.forEach(dingUserId -> { - if (finalCoolUserIdList.contains(dingUserId)) { - finalCoolUserIdList.remove(dingUserId); - } - }); - - List mainAdminIds = enterpriseUserDAO.getMainAdminUserIds(); - //如果是节点同步,不执行人员删除操作 - if(regionId!=null){ - log.info("节点用户同步完成eid:{},regionId={}",regionId); - return; - } - for (String coolUserId : coolUserIdList) { - try { - //不能删除AI用户和主管理员 - if (!CommonConstants.AI_USER_ID.equals(coolUserId) && !mainAdminIds.contains(coolUserId)) { - syncDeleteUser(coolUserId, dbName); - } - } catch (Exception e) { - log.info("fullSyncUser corpId={}", e, corpId); - } - } - log.info("同步用户完成eid:{}"); - } - - public void syncDeleteUser(String userId, String dbName) { - //删除企业库对应的映射关系 - DataSourceHelper.changeToSpecificDataSource(dbName); - // 1.更新用户信息 - EnterpriseUserDO enterpriseUser = enterpriseUserDAO.getUserInfoById(userId); - if (enterpriseUser != null) { - enterpriseUser.setActive(false); - enterpriseUserDAO.updateEnterpriseUser(enterpriseUser); - } - // 2.删除用户角色映射关系 - //获得用户在cool中的角色列表 - List userRoleIds = enterpriseUserRoleDAO.selectIdsByUserId(userId); - //删除用户和区域的关联关系 - userRegionMappingDAO.deletedByUserIds(Arrays.asList(userId)); - if (userRoleIds != null) { - Lists.partition(userRoleIds, CommonConstants.DEAL_RECORD_MAX_SIZE).forEach(deleteUserRoleIds -> { - enterpriseUserRoleDAO.deleteBatchByPrimaryKey(deleteUserRoleIds); - }); - } - } - - private void syncFsDeptUser(String corpId, String dbName, Set dingUserIdList, String deptId, String appType){ - List deptUsers =isvHttpRequest.getDeptUsers(corpId, deptId, appType); - log.info("获取飞书部门下用户的部门id {} ,返回用户详情列表 {} ", deptId, JSONObject.toJSONString(deptUsers)); - if (CollectionUtils.isEmpty(deptUsers)){ - return; - } - for (EnterpriseUserRequest deptUser : deptUsers) { - if (Objects.nonNull(deptUser.getEnterpriseUserDO())) { - dingUserIdList.add(deptUser.getEnterpriseUserDO().getUserId()); - try { - String userId = deptUser.getEnterpriseUserDO().getUserId(); - syncFsUser(corpId, userId, dbName, appType); - } catch (Exception e) { - log.error("syncFsDeptUser,当前用户同步失败 {} ", deptUser.getEnterpriseUserDO().getUserId(), e); - } - } - } - } - - public void syncFsUser(String corpId, String userId, String dbName, String appType) { - //获得企业微信用户详情 - DataSourceHelper.changeToSpecificDataSource(dbName); - Long employeeRoleId = sysRoleDAO.getRoleIdByRoleEnum(RoleEnum.EMPLOYEE.getRoleEnum()); - DataSourceHelper.reset(); - EnterpriseUserRequest fsEnterpriseUser = getFsUserDetail(corpId, userId, String.valueOf(employeeRoleId), appType); - - //使用userId获得企业微信用户信息后,转换为门店的userid - fsEnterpriseUser.getEnterpriseUserDO().setUserId(userId); - fsEnterpriseUser.getEnterpriseUserDO().setUserStatus(UserStatusEnum.NORMAL.getCode()); - //判断用户是否是管理员 - List adminList = isvHttpRequest.getAdminUserList(corpId, appType); - log.info("飞书管理员列表:{}", JSONObject.toJSONString(adminList)); - //是否是管理员 - if (CollectionUtils.isNotEmpty(adminList)) { - adminList.forEach(openUserId -> { - if (openUserId.equals(fsEnterpriseUser.getEnterpriseUserDO().getUserId())) { - fsEnterpriseUser.getEnterpriseUserDO().setIsAdmin(Boolean.TRUE); - } - }); - } - //先处理企业库 - DataSourceHelper.changeToSpecificDataSource(dbName); - //设置用户部门全路劲 - Pair, Map> tuple = getAllDeptInfo(); - enterpriseUserService.updateUserDeptPath(fsEnterpriseUser, tuple.getValue()); - EnterpriseUserDO coolEnterpriseUser = enterpriseUserService.selectByUserIdIgnoreActive(userId); - log.info("数智门店企业用户信息 {} ", JSONObject.toJSONString(coolEnterpriseUser)); - if (coolEnterpriseUser != null) { - //设置下级是否变动 - fsEnterpriseUser.getEnterpriseUserDO().setSubordinateChange(coolEnterpriseUser.getSubordinateChange()); - fsEnterpriseUser.getEnterpriseUserDO().setId(coolEnterpriseUser.getId()); - if (coolEnterpriseUser.getUserStatus() != null) { - fsEnterpriseUser.getEnterpriseUserDO().setUserStatus(coolEnterpriseUser.getUserStatus()); - } - } - syncEntUser(fsEnterpriseUser, appType); - } - - public EnterpriseUserRequest getFsUserDetail(String corpId, String userId, String employeeRole, String appType) { - EnterpriseUserDTO enterpriseUserDTO = null; - try { - enterpriseUserDTO = isvHttpRequest.getUserDetailByUserId(corpId, userId, appType); - } catch (Exception e) { - log.info("飞书用户查询失败:userId:{},corpId:{},appType:{},e:{}",userId,corpId,appType,e); - return null; - } - EnterpriseUserRequest enterpriseUserRequest = new EnterpriseUserRequest(); - if (Objects.isNull(enterpriseUserDTO)) { - //初始化防止出现null 后续用到引发空指针 - enterpriseUserRequest.setEnterpriseUserDO(new EnterpriseUserDO()); - return enterpriseUserRequest; - } - EnterpriseUserDO enterpriseUser = new EnterpriseUserDO(); - //激活状态: 1=已激活,2=已禁用,4=未激活,5=退出企业 - if (enterpriseUserDTO.getActive() != null && enterpriseUserDTO.getActive()) { - enterpriseUser.setActive(enterpriseUserDTO.getActive()); - } else { - enterpriseUser.setActive(Boolean.FALSE); - } - enterpriseUserRequest.setDepartmentLists(enterpriseUserDTO.getDepartmentLists()); - enterpriseUserRequest.setLeaderInDepts(enterpriseUserDTO.getIsLeaderInDepts()); - - if (CollectionUtils.isNotEmpty(enterpriseUserDTO.getIsLeaderInDepts())) { - enterpriseUser.setIsLeaderInDepts(JSONObject.toJSONString(enterpriseUserDTO.getIsLeaderInDepts())); - } - enterpriseUser.setCreateTime(new Date()); - enterpriseUser.setUnionid(enterpriseUserDTO.getUnionid()); - enterpriseUser.setIsAdmin(false); - enterpriseUser.setRemark(enterpriseUserDTO.getUserId()); - enterpriseUser.setUserId(enterpriseUserDTO.getUserId()); - enterpriseUser.setName(enterpriseUserDTO.getName()); - enterpriseUser.setPosition(enterpriseUserDTO.getPosition()); - enterpriseUser.setMobile(enterpriseUserDTO.getMobile()); - enterpriseUserRequest.setEnterpriseUserDO(enterpriseUser); - return enterpriseUserRequest; - } - - - public Pair, Map> getAllDeptInfo() { - List allDeptList = sysDepartmentDAO.selectAllDepts(); - Set deptIdSet = allDeptList.stream().map(SysDepartmentDO::getId).collect(Collectors.toSet()); - Map deptIdMap = allDeptList.stream().filter(d -> d.getParentId() != null).collect(Collectors.toMap(SysDepartmentDO::getId, SysDepartmentDO::getParentId)); - return new Pair<>(deptIdSet, deptIdMap); - } - - public void syncEntUser(EnterpriseUserRequest request, String appType) { - EnterpriseUserDO enterpriseUser = request.getEnterpriseUserDO(); - if (Objects.isNull(enterpriseUser)) { - return; - } - Boolean isAdd = enterpriseUser.getId() == null; - String userId = enterpriseUser.getUserId(); - //TODO 一.插入或者更新用户信息 - if (enterpriseUser.getId() == null) { - enterpriseUser.setId(UUIDUtils.get32UUID()); - enterpriseUserDAO.insertEnterpriseUser(enterpriseUser); - } else { - enterpriseUserDAO.updateEnterpriseUser(enterpriseUser); - } - //TODO 二.更新该用户的部门信息 - //ding部门id列表 - List fsDeptIds = request.getDepartmentLists(); - //同步用户的部门权限 - List manageDeptIds = JSONObject.parseArray(request.getEnterpriseUserDO().getIsLeaderInDepts(), String.class); - //同步用户和区域的关系 - syncUserRegionMapping(userId, ListUtils.emptyIfNull(fsDeptIds).stream().map(a -> String.valueOf(a)).collect(Collectors.toList())); - //补全该用户的user_region_ids - enterpriseUserService.updateUserRegionPathList(Arrays.asList(userId)); - //如果用户是企微管理员,同步为门店的管理员 - if (enterpriseUser.getIsAdmin()) { - EnterpriseUserRole masterRole = enterpriseUserRoleDAO.selectByUserIdAndRoleId(enterpriseUser.getUserId(), RoleEnum.MASTER.getId()); - if (masterRole == null) { - Long roleIdByRoleEnum = sysRoleDAO.getRoleIdByRoleEnum(RoleEnum.MASTER.getRoleEnum()); - enterpriseUserRoleDAO.save(new EnterpriseUserRole(roleIdByRoleEnum.toString(), userId)); - } - } - //TODO 三更新该用户的角色信息:新增或者删除 - //TODO 四.更新该用户区域权限信息(可见区域与门店) 2021-5-6 新增判断字段,存在只添加用户信息以及用户部门信息的场景 - //根据钉钉返回信息,获得该用户拥有的可视化权限 - Map leaderMap = new HashMap<>(); - List leaderInDept = new ArrayList<>(); - if (StringUtils.isNotBlank(enterpriseUser.getIsLeaderInDepts())) { - String leaderDeptStr = enterpriseUser.getIsLeaderInDepts().replaceAll("\\[", "").replaceAll("\\]", ""); - leaderDeptStr = leaderDeptStr.replace(" ", ""); - if(StringUtils.isNotBlank(leaderDeptStr)){ - leaderInDept = Arrays.stream(leaderDeptStr.split(",")).map(String::valueOf).collect(Collectors.toList()); - } - } - if (fsDeptIds.size() != leaderInDept.size()) { - return; - } - for (int i = 0; i < fsDeptIds.size(); i++) { - leaderMap.put(fsDeptIds.get(i), CommonConstants.ONE_STR.equals(leaderInDept.get(i))); - } - } - - - private List getSyncAuthMappingList(Map map - , String position, String userId, List deptIds, String appType) { - //该用户相关区域 3-25现在用户可视权限不涉及门店,只需要考虑区域,而且区域信息表中会冗余门店的信息,根据区域类型判断是否是门店 - List regions = regionDAO.getRegionByDingDeptIds(deptIds); -// List stores = storeMapper.getStoreByDingDeptIds(dingDeptIds); 获得所有的门店类型 2021-5-6 区域表修改,不在冗余门店类型的区域 - //添加人员权限映射表,即用户可见范围 - List userAuthMappingDOList = new ArrayList<>(); - //判断是否是自定义区域权限 - Boolean isCustomizeRole = false; - //用户在该区域(部门)是管理员时,拥有可见权限 - regions.forEach(region -> { - UserAuthMappingDO mappingDO = new UserAuthMappingDO(userId, region.getId().toString(), UserAuthMappingTypeEnum.REGION.getCode() - , "sync", "system", System.currentTimeMillis()); - //2.自定义区域权限配置 - if (isCustomizeRole) { - userAuthMappingDOList.add(mappingDO); - return; - } - if(appType!= null && appType.startsWith(AppTypeEnum.WX_PRIVATE_ZHOU.getValue())){ - userAuthMappingDOList.add(mappingDO); - } - }); - return userAuthMappingDOList; - } - - public void syncUserRegionMapping(String userId, List deptIds) { - //现在已经存在的用户和区域的映射关系 - List userRegionMappingDOS = userRegionMappingDAO.listUserRegionMappingByUserId(Arrays.asList(userId)); - Map userRegionMap = ListUtils.emptyIfNull(userRegionMappingDOS) - .stream() - .collect(Collectors.toMap(UserRegionMappingDO::getRegionId, data -> data, (a, b) -> a)); - //db查询区域表的数据,找到映射的区域 - List regionIds = regionDAO.getRegionIdsBySynDingDeptIds(deptIds); - if (CollectionUtils.isEmpty(regionIds)) { - //没有任何映射的区域放在未分组下 - regionIds.add(CommonConstants.UNGROUPED_DEPT_ID); - } - List userRegionMappings = new ArrayList<>(); - for (Long regionId : regionIds) { - UserRegionMappingDO userRegionMappingDO = userRegionMap.get(String.valueOf(regionId)); - if (Objects.nonNull(userRegionMappingDO)) { - userRegionMappingDOS.remove(userRegionMappingDO); - } else { - //换成批量新增 - UserRegionMappingDO userRegion = new UserRegionMappingDO(); - userRegion.setUserId(userId); - userRegion.setCreateTime(System.currentTimeMillis()); - userRegion.setUpdateTime(System.currentTimeMillis()); - userRegion.setRegionId(String.valueOf(regionId)); - userRegionMappings.add(userRegion); - } - if (userRegionMappings.size() > CommonConstants.DEAL_RECORD_MAX_SIZE) { - userRegionMappingDAO.batchInsertRegionMapping(userRegionMappings); - userRegionMappings.clear(); - } - } - - //批量新增 - if (CollectionUtils.isNotEmpty(userRegionMappings)) { - Lists.partition(userRegionMappings, CommonConstants.DEAL_RECORD_MAX_SIZE).forEach(p -> { - userRegionMappingDAO.batchInsertRegionMapping(p); - }); - } - //删除用户移除的区域关系 - if (CollectionUtils.isNotEmpty(userRegionMappingDOS)) { - List deleteUserRegions = userRegionMappingDOS.stream() - .map(UserRegionMappingDO::getId) - .collect(Collectors.toList()); - userRegionMappingDAO.deletedByIds(deleteUserRegions); - } - } - - public void newSyncFsDept(Long regionId){ - DataSourceHelper.reset(); - EnterpriseConfigDO config = enterpriseConfigDAO.selectByEnterpriseId(); - EnterpriseDO enterpriseDO = enterpriseDAO.getEnterpriseById(); - Set deleteDeptIds = syncDept(config.getDingCorpId(), config.getAppType(), config.getDbName()); - if (CollectionUtils.isNotEmpty(deleteDeptIds)) { - //删除不存在的数据 - sysDepartmentDAO.deleteByNotInIds(new ArrayList<>(deleteDeptIds)); - } - //先获得这次同步的数据范围 regionId 不为null 指定部门ID - List deptIds = new ArrayList<>(); - String unitId = CommonConstants.ROOT_DEPT_ID_STR;; - RegionDO regionDO =null; - if (regionId!=null){ - DataSourceHelper.changeToSpecificDataSource(config.getDbName()); - regionDO = regionDAO.getByRegionId(regionId); - deptIds.add(regionDO.getSynDingDeptId()); - unitId = regionDO.getSynDingDeptId(); - } - List departmentList = new ArrayList<>(); - if(CollectionUtils.isNotEmpty(deptIds)){ - for (String deptId: deptIds) { - List departmentDTOList = isvHttpRequest.getSubDepartments(config.getDingCorpId(), config.getAppType(), deptId, Boolean.TRUE); - if(CollectionUtils.isNotEmpty(departmentDTOList)){ - for(SysDepartmentDTO departmentDTO : departmentDTOList){ - if(departmentDTO.getId().equals(CommonConstants.ROOT_DEPT_ID_STR) && StringUtils.isBlank(departmentDTO.getName())){ - departmentDTO.setName(enterpriseDO.getName()); - } - if(!departmentDTO.getId().equals(CommonConstants.ROOT_DEPT_ID_STR) && deptIds.contains(departmentDTO.getId())&®ionId==null){ - departmentDTO.setParentId(CommonConstants.ROOT_DEPT_ID_STR); - } - departmentList.add(convertSysDepartmentDTO2SysDepartmentDO(departmentDTO, config.getAppType())); - } - } - } - }else { - departmentList = getAllDepts(null,config.getDingCorpId(), config.getAppType()); - } - //转换部门为区域,同时判断好该区域是否为门店 - List regionList = new ArrayList<>(); - if (unitId.equals(CommonConstants.ROOT_DEPT_ID_STR)&&!deptIds.contains(unitId)) { - RegionDTO rootRegion = new RegionDTO(); - rootRegion.setName(enterpriseDO.getName()); - rootRegion.setSynDingDeptId(CommonConstants.ROOT_DEPT_ID_STR); - rootRegion.setParentId(CommonConstants.ZERO_STR); - rootRegion.setStoreRange(false); - regionList.add(rootRegion); - } - if (regionId!=null){ - RegionDTO rootRegion = new RegionDTO(); - rootRegion.setName(regionDO.getName()); - rootRegion.setSynDingDeptId(regionDO.getSynDingDeptId()); - rootRegion.setParentId(regionDO.getRegionId()); - rootRegion.setStoreRange(false); - regionList.add(rootRegion); - } - List deptRegionList = transDeptToRegion(departmentList, config.getAppType()); - regionList.addAll(deptRegionList); - newSyncOrgAll(regionId, unitId, regionList); - } - - public void newSyncOrgAll(Long regionId ,String unitId, List resultList) { - if(CollectionUtils.isEmpty(resultList)){ - return; - } - //先去重 - resultList = resultList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> - new TreeSet<>(Comparator.comparing(RegionDTO::getSynDingDeptId))), ArrayList::new)); - DataSourceHelper.reset(); - EnterpriseConfigDO enterpriseConfigDO = enterpriseConfigDAO.selectByEnterpriseId(); - DataSourceHelper.changeToSpecificDataSource(enterpriseConfigDO.getDbName()); - - String userId = ""; - - Map mapResult = resultList.stream().collect(Collectors.toMap(RegionDTO::getSynDingDeptId, org -> org)); - //取的是跟节点或者指定节点 - // TODO: 2022/8/2 - RegionDTO root = mapResult.get(unitId); - if(root == null){ - throw new ServiceException("需要同步的节点不存在,同步失败 unitId:" + unitId); - } - - //上下级一致修改为根节点 - resultList.forEach(e ->{ - if(StringUtils.isNotBlank(e.getSynDingDeptId()) && e.getSynDingDeptId().equals(e.getParentId())){ - e.setParentId(root.getSynDingDeptId()); - } - }); - - //根据父节点分组 - Map> parentGroup = ListUtils.emptyIfNull(resultList) - .stream() - .collect(Collectors.groupingBy(RegionDTO::getParentId)); - - //构建根节点 - root.setSynDingDeptId(unitId); - - //如果是节点同步,regionId就是该次同步的头节点,如果不设置为根节点,数据将会有问题 - if (regionId!=null){ - root.setId(regionId); - } - //构建数据 - RegionDO rootRegion = prepareRegionRoot(userId, root); - if(rootRegion == null){ - return; - } - Queue queue = new LinkedList<>(); - queue.add(rootRegion); - - //节点同步的时候,需要将该节点个regionPath拿到,之后的数据都是基于该regionPath - if (regionId!=null){ - RegionDO regionDO = regionDAO.getByRegionId(regionId); - rootRegion.setRegionPath(regionDO.getRegionPath()); - } - List regionList = regionDAO.getSpecifiedRegionIdAndDeptId(regionId); - List regionSelfList = new ArrayList<>(); - Map regionMap = new HashMap<>(); - if (CollectionUtils.isNotEmpty(regionList)) { - regionSelfList = regionList.stream() - .filter((RegionSyncDTO s) -> StringUtils.isBlank(s.getSynDingDeptId())).map(RegionSyncDTO::getId) - .collect(Collectors.toList()); - - regionMap = regionList.stream().filter((RegionSyncDTO s) -> StringUtils.isNotBlank(s.getSynDingDeptId())&&s.getId()!=null).collect(Collectors.toMap(RegionSyncDTO::getSynDingDeptId, RegionSyncDTO::getId)); - } - List removeStoreList = new ArrayList<>(); - Map storeMap = new HashMap<>(); - String storeKey = "hsay_store"; - String regionKey = "hsay_region"; - //有效期一天 完成任务删除 - redisUtil.putAll(storeKey, storeMap, 1L, TimeUnit.DAYS); - //有效期一天 - redisUtil.putAll(regionKey, regionMap, 1L, TimeUnit.DAYS); - - - while (!queue.isEmpty()) { - int size = queue.size(); - //门店区域 - List storeRegionList = new ArrayList<>(); - - for (int i = 0; i < size; i++) { - RegionDO deptInfo = queue.poll(); - - Long parentId = deptInfo.getId(); - if(deptInfo.getStoreRange() == null){ - deptInfo.setStoreRange(false); - } - //是门店则结束探下级 - if(deptInfo.getStoreRange()){ - storeRegionList.add(deptInfo); - continue; - } - - //查询下一级节点 - List deptList = parentGroup.get(deptInfo.getSynDingDeptId()); - - log.info(" deptList deptId : {} deptList.size:{}", deptInfo.getSynDingDeptId(), deptList == null ? 0 : deptList.size()); - //叶子节点 - if (CollectionUtils.isEmpty(deptList)) { - log.info("叶子节点:deptId:{}", deptInfo.getId()); - continue; - } - - - List regionInsertList = new ArrayList<>(); - List regionUpdateList = new ArrayList<>(); - deptList.forEach(e -> { - RegionDO region = new RegionDO(); - region.setParentId(String.valueOf(parentId)); - region.setName(e.getName()); - region.setCreateTime(System.currentTimeMillis()); - region.setUpdateTime(System.currentTimeMillis()); - region.setSynDingDeptId(String.valueOf(e.getSynDingDeptId())); - region.setRegionType(RegionTypeEnum.PATH.getType()); - region.setStoreRange(e.getStoreRange()); - region.setAddress(e.getAddress()); - region.setStoreCode(e.getStoreCode()); - region.setLongitude(e.getLongitude()); - region.setLatitude(e.getLatitude()); - if(region.getStoreRange()){ - log.info("门店"); - //转换经纬度 -// changeGaode(region); - } - String regionPath; - if(StringUtils.isBlank(deptInfo.getRegionPath())){ - regionPath = "/1/"; - }else { - regionPath = deptInfo.getRegionPath().endsWith("/") ? deptInfo.getRegionPath() + deptInfo.getId() + "/" : - deptInfo.getRegionPath() + "/" + deptInfo.getId() + "/" ; - } - if(!regionPath.startsWith("/")){ - regionPath = "/" + regionPath; - } - regionPath = regionPath.replaceAll("//", "/"); - region.setRegionPath(regionPath); - region.setDeleted(false); - String deptId = e.getSynDingDeptId(); - String id = redisUtil.hashGetString(regionKey, deptId); - if (StringUtils.isNotBlank(id)) { - region.setId(Long.valueOf(id)); - //删除对应的已有redis key缓存 - redisUtil.delete(regionKey, deptId); - regionUpdateList.add(region); - } else { - regionInsertList.add(region); - } - }); - log.info("regionUpdateList:size:{}", regionUpdateList.size()); - if (CollectionUtils.isNotEmpty(regionUpdateList)) { - log.info("regionUpdateList:int"); - for(RegionDO regionDO : regionUpdateList){ - //批量插入或更新 - regionService.saveRegionAndStore(regionDO, userId); - } - queue.addAll(regionUpdateList); - } - log.info("regionInsertList:size:{}", regionInsertList.size()); - if (CollectionUtils.isNotEmpty(regionInsertList)) { - log.info("regionInsertList:int"); - try { - for(RegionDO regionDO : regionInsertList){ - //批量插入或更新 - regionService.saveRegionAndStore(regionDO, userId); - } - } catch (Exception e) { - log.error("保存部门异常 eid :{} deptId :{} deptName :{}", deptInfo.getId(), deptInfo.getName()); - log.error("保存部门异常细节",e); - if (e instanceof DuplicateKeyException) { - throw new ServiceException(deptInfo.getName() + "[" + deptInfo.getId() + "] 下级部门和其他同步部门有上下级关系"); - } - throw new ServiceException(deptInfo.getName() + "[" + deptInfo.getId() + "] 保存异常"); - } - queue.addAll(regionInsertList); - } - } - } - - - Map leftMap = redisUtil.entries(regionKey); - List regionIdList = new ArrayList<>(); - if (!leftMap.isEmpty()) { - for (Map.Entry entry : leftMap.entrySet()) { - if (CommonConstants.ROOT_DEPT_ID_STR.equals(entry.getKey()) || CommonConstants.DELETE_DEPT_ID.equals(entry.getKey())) { - continue; - } - regionIdList.add(Long.valueOf(entry.getValue().toString())); - } - } - //移除删除的钉钉区域 - if (CollectionUtils.isNotEmpty(regionIdList)) { - regionService.removeRegions(regionIdList); - } - //移除自有的区域 - if (CollectionUtils.isNotEmpty(regionSelfList)) { - Lists.partition(regionSelfList, CommonConstants.DEAL_RECORD_MAX_SIZE).forEach(idList -> regionService.removeRegions(idList)); - } - Map leftStoreMap = redisUtil.entries(storeKey); - if (!leftStoreMap.isEmpty()) { - for (Map.Entry entry : leftStoreMap.entrySet()) { - removeStoreList.add(entry.getValue().toString()); - } - } - } - - private RegionDO prepareRegionRoot(String userId, RegionDTO deptRoot) { - - RegionNode regionDelete = regionDAO.getRegionById(CommonConstants.DELETE_DEPT_ID); - - if (regionDelete == null) { - regionDAO.insertRegion(RegionDO.builder().name("删除区域") - .createName(userId) - .createTime(System.currentTimeMillis()) - .id(Long.valueOf(CommonConstants.DELETE_DEPT_ID)) - .build()); - } - - String regionType = ""; - if (deptRoot.getSynDingDeptId().equals(CommonConstants.ROOT_DEPT_ID_STR)){ - regionType = RegionTypeEnum.ROOT.getType(); - }else { - regionType = deptRoot.getStoreRange()? RegionTypeEnum.STORE.getType():RegionTypeEnum.PATH.getType(); - } - RegionDO rootDO = RegionDO.builder().name(deptRoot.getName()). - synDingDeptId(deptRoot.getSynDingDeptId()) - .updateTime(System.currentTimeMillis()) - .deleted(false) - .parentId(deptRoot.getParentId()) - .id(deptRoot.getId()) - .regionType(regionType) - .build(); - if(deptRoot.getId() == null){ - rootDO.setId(Long.valueOf(CommonConstants.ROOT_DEPT_ID_STR)); - rootDO.setParentId("0"); - } - regionDAO.insertOrUpdate(rootDO); - return rootDO; - } - - - public Set syncDept(String corpId, String appType, String dbName) { - List sysDepartments = getFsDepartmentsV1(corpId, appType); - Set idSet = new HashSet<>(); - log.info("{} get depts size={}", corpId, sysDepartments.size()); - idSet = sysDepartments.stream().map(SysDepartmentDO::getId).collect(Collectors.toSet()); - DataSourceHelper.changeToSpecificDataSource(dbName); - //分开批量插入 - if (CollectionUtils.isNotEmpty(sysDepartments)) { - Lists.partition(sysDepartments, CommonConstants.DEAL_RECORD_MAX_SIZE).forEach(p -> { - sysDepartmentDAO.batchInsertOrUpdate(p); - }); - } - return idSet; - } - - public List getFsDepartmentsV1(String corpId, String appType) { - - AuthInfoDTO authInfo = isvHttpRequest.getAuthInfo(corpId, appType); - String corpName = authInfo.getAuthCorpInfo().getCorpName(); - SysDepartmentDO rootSysDepartment = getRootSysDepartment(corpName); - log.info("getPySysDepartmentsV2:{}", JSONObject.toJSONString(rootSysDepartment)); - List sysDepartments = Lists.newArrayList(); - sysDepartments.add(rootSysDepartment); - List deptIdList = isvHttpRequest.getAuthScope(corpId, appType).getDeptIdList(); - if (CollectionUtils.isNotEmpty(deptIdList)) { - //特殊处理,全部授权时,拿到第一级节点部门 - if (deptIdList.size()== CommonConstants.ONE && deptIdList.contains(CommonConstants.ROOT_DEPT_ID_STR)){ - deptIdList = Lists.newArrayList() ; - } - List allDepts = getAuthScopeAllDepts(deptIdList, corpId, appType); - if (CollectionUtils.isNotEmpty(allDepts)) { - sysDepartments.addAll(allDepts); - } - } - return sysDepartments; - } - - public List getAuthScopeAllDepts(List ids, String corpId, String appType){ - List departments = Lists.newArrayList(); - - if (CollectionUtils.isEmpty(ids)){ - List subDepts = Lists.newArrayList(); - try { - subDepts = getAllDepts(null, corpId,appType); - } catch (ServiceException e) { - log.info("飞书获取部门列表失败:id:{},corpId:{},appType:{},e:{}",ids,corpId,appType,e); - } - //过滤掉root部门 - subDepts = subDepts.stream().filter(x->! CommonConstants.ROOT_DEPT_ID_STR.equals(x.getId())).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(subDepts)) { - departments.addAll(subDepts); - } - } - for (String id : ids) { - List subDepts = Lists.newArrayList(); - try { - subDepts = getAllDepts(id, corpId,appType); - } catch (ServiceException e) { - log.info("飞书获取部门列表失败:id:{},corpId:{},appType:{},e:{}",id,corpId,appType,e); - } - if (CollectionUtils.isNotEmpty(subDepts)) { - departments.addAll(subDepts); - } - } - - //去重 - departments = departments.stream().distinct().collect(Collectors.toList()); - Set idSet = departments.stream().map(r -> r.getId()).collect(Collectors.toSet()); - - departments.forEach(d -> { - if (!idSet.contains(d.getParentId())) { - d.setParentId(CommonConstants.ROOT_DEPT_ID_STR); - } - }); - - return departments; - } - - public List getAllDepts(String id, String corpId, String appType) { - List sysDepartments = Lists.newArrayList(); - List departments = isvHttpRequest.getDepartments(corpId, appType, id); - log.info("feishu_getAllDepts:{}",JSONObject.toJSONString(departments)); - if (CollectionUtils.isEmpty(departments)) { - return sysDepartments; - } - for (SysDepartmentDTO sysDepartmentDTO:departments) { - SysDepartmentDO sysDepartment = new SysDepartmentDO(); - sysDepartment.setId(sysDepartmentDTO.getId()); - sysDepartment.setName(sysDepartmentDTO.getName()); - sysDepartment.setParentId(sysDepartmentDTO.getParentId()); - sysDepartment.setDepartOrder(sysDepartmentDTO.getDepartOrder()); - sysDepartments.add(sysDepartment); - } - return sysDepartments; - } - - private SysDepartmentDO getRootSysDepartment(String corpName) { - SysDepartmentDO rootDepartment = new SysDepartmentDO(); - rootDepartment.setId(CommonConstants.ROOT_DEPT_ID_STR); - rootDepartment.setName(corpName); - return rootDepartment; - } - - public List transDeptToRegion(List deptList, String appType) { - List result = new ArrayList<>(); - //根据父节点分组 - Map> parentGroup = ListUtils.emptyIfNull(deptList) - .stream() - .filter(d -> !CommonConstants.ROOT_DEPT_ID_STR.equals(d.getId())) - .collect(Collectors.groupingBy(SysDepartmentDO::getParentId)); - //部门 名称映射 - Map deptNameMap = ListUtils.emptyIfNull(deptList) - .stream().collect(Collectors.toMap(SysDepartmentDO::getId, SysDepartmentDO::getName,(k1, k2)->k1)); - dealDeptParentIds(deptList); - for (SysDepartmentDO dept : deptList) { - RegionDTO region = new RegionDTO(); - region.setName(dept.getName()); - if (!AppTypeEnum.isFsType(appType)) { - region.setId(Long.valueOf(dept.getId())); - } - region.setParentId(dept.getParentId() == null ? CommonConstants.ZERO_STR : dept.getParentId().toString()); - region.setSynDingDeptId(dept.getId()); - //region.setStoreRange(storeRuleJudge(dept, enterpriseSettingVO, parentGroup)); - result.add(region); - } - return result; - } - - public void dealDeptParentIds(List deptList){ - Map departmentMap = deptList.stream().collect(Collectors.toMap(k->k.getId(), Function.identity(), (k1, k2)->k1)); - Map> parentDepMap = deptList.stream().filter(o->Objects.nonNull(o.getParentId())).collect(Collectors.groupingBy(k->k.getParentId())); - for (SysDepartmentDO sysDepartment : deptList) { - String parentId = sysDepartment.getParentId(); - List parentIds = new ArrayList<>(); - if(Objects.nonNull(parentId)){ - parentIds.add(parentId); - } - SysDepartmentDO parentDept = departmentMap.get(parentId); - while (Objects.nonNull(parentDept)){ - String pId = parentDept.getParentId(); - parentDept = departmentMap.get(parentDept.getParentId()); - if(Objects.nonNull(pId)){ - parentIds.add(pId); - } - } - Collections.reverse(parentIds); - sysDepartment.setParentIds(JSONObject.toJSONString(parentIds)); - List sysDepartmentDOS = parentDepMap.get(sysDepartment.getId()); - sysDepartment.setIsLeaf(CollectionUtils.isEmpty(sysDepartmentDOS)); - } - } - - public void dealUsers(List users, String corpId, String dbName, - Map deptIdMap, Long unclassifiedRegionId, AuthInfoDTO authInfo, Set handlerUserIds) { - - DataSourceHelper.changeToSpecificDataSource(dbName); - try { - insertUserRelatedInfo(users, dbName, authInfo, handlerUserIds); - //处理用户和区域的关系 - handlerUserRegionMapping(users, unclassifiedRegionId); - } catch (Exception e) { - log.error("dealUsers insertUserRelatedInfo error, corpId={}", corpId, e); - } - } - - public void insertUserRelatedInfo(List deptUsers, String dbName, AuthInfoDTO authInfo, Set handlerUserIds) { - - if (CollectionUtils.isEmpty(deptUsers)) { - log.info("insertUserRelatedInfo deptUsers is empty,eid:{}"); - return; - } - log.info("insertUserRelatedInfo-{}, deptUsersSize:{}",deptUsers.size()); - DataSourceHelper.reset(); - //提取enterpriseUserDO - List collect = ListUtils.emptyIfNull(deptUsers).stream() - .map(EnterpriseUserRequest::getEnterpriseUserDO) - .collect(Collectors.toList()); - DataSourceHelper.changeToSpecificDataSource(dbName); - enterpriseUserDAO.batchInsertOrUpdate(collect); - // 同步用户与角色的关系 - Long masterRoleId = sysRoleDAO.getRoleIdByRoleEnum(RoleEnum.MASTER.getRoleEnum()); - Long employeeRoleId = sysRoleDAO.getRoleIdByRoleEnum(RoleEnum.EMPLOYEE.getRoleEnum()); - Long subMaster = sysRoleDAO.getRoleIdByRoleEnum(RoleEnum.SUB_MASTER.getRoleEnum()); - Long shopOwner = sysRoleDAO.getRoleIdByRoleEnum(RoleEnum.SHOPOWNER.getRoleEnum()); - List userRoles = new ArrayList<>(); - collect.forEach(f -> { - if (Objects.nonNull(f)) { - //记录此次操作的用户 - handlerUserIds.add(f.getUserId()); - if (Objects.nonNull(f.getIsAdmin()) && f.getIsAdmin()) { - log.info("绑定管理员角色,{}", f.getUserId()); - userRoles.add(new EnterpriseUserRole(masterRoleId.toString(), f.getUserId())); - //如果是开通人,再给子管理员权限 - if (authInfo.getAuthUserInfo()!=null){ - if (f.getUserId().equals(authInfo.getAuthUserInfo().getUserId())) { - userRoles.add(new EnterpriseUserRole(subMaster.toString(), f.getUserId())); - userRoles.add(new EnterpriseUserRole(shopOwner.toString(), f.getUserId())); - } - } - } else { - userRoles.add(new EnterpriseUserRole(employeeRoleId.toString(), f.getUserId())); - } - } - }); - if (CollectionUtils.isNotEmpty(userRoles)) { - enterpriseUserRoleDAO.insertBatchUserRole(userRoles); - } - } - - /** - * 处理用户和区域的关系 - * @param - * @param enterpriseUserRequests - */ - public void handlerUserRegionMapping(List enterpriseUserRequests, Long unclassifiedRegionId) { - //用户区域映射关系 - List userRegionMappings = new ArrayList<>(); - List userIds = new ArrayList<>(); - List regionIds = new ArrayList<>(); - enterpriseUserRequests.forEach(user -> { - if (Objects.isNull(user.getEnterpriseUserDO())) { - return; - } - //移除不在授权范围内的部门 - List deptIds = user.getDepartmentLists(); - if (CollectionUtils.isEmpty(deptIds)) { - if (Objects.isNull(unclassifiedRegionId)) { - return; - } - //如果所属的部门未在授权部门内,挂在未分组 - regionIds.add(unclassifiedRegionId); - } else { - //db查询区域表的数据,找到映射的区域 - List regionIdsBySynDingDeptIds = regionDAO.getRegionIdsBySynDingDeptIds(deptIds.stream().map(a -> a).collect(Collectors.toList())); - if (CollectionUtils.isNotEmpty(regionIdsBySynDingDeptIds)) { - regionIds.addAll(regionIdsBySynDingDeptIds); - } else { - //未找到映射关系 - regionIds.add(unclassifiedRegionId); - } - } - //构建用户和区域的关系 - ListUtils.emptyIfNull(regionIds) - .stream() - .forEach(item -> { - userRegionMappings.add(buildUserRegionMappingDO(user.getEnterpriseUserDO().getUserId(), item)); - - }); - //清除用户区域的关系的regionIds用来存储下属映射的区域regionIds - regionIds.clear(); - //构建我的下属 - //移除不在授权范围内的部门的主管部门 - List leaderDeptIds = user.getLeaderInDepts(); - if (CollectionUtils.isNotEmpty(leaderDeptIds)) { - List regionIdsBySynDingDeptIds = regionDAO.getRegionIdsBySynDingDeptIds(leaderDeptIds.stream().map(a->a).collect(Collectors.toList())); - if (CollectionUtils.isNotEmpty(regionIdsBySynDingDeptIds)) { - regionIds.addAll(regionIdsBySynDingDeptIds); - } - } - //用完即清除 - regionIds.clear(); - userIds.add(user.getEnterpriseUserDO().getUserId()); - //触发条件,满足一个,就开始进行处理落库 - if (userRegionMappings.size() > CommonConstants.DEAL_RECORD_MAX_SIZE) { - //先删除 后新增 - //用户和区域的映射关系 - userRegionMappingDAO.deletedByUserIds(userIds); - userRegionMappingDAO.batchInsertRegionMapping(userRegionMappings); - //调用订正用户表字段user_region_ids - enterpriseUserService.updateUserRegionPathList(userIds); - userRegionMappings.clear(); - userIds.clear(); - } - }); - if (CollectionUtils.isNotEmpty(userRegionMappings)) { - //先删除 后新增 - //用户和区域的映射关系 - userRegionMappingDAO.deletedByUserIds(userIds); - userRegionMappingDAO.batchInsertRegionMapping(userRegionMappings); - //调用订正用户表字段user_region_ids - enterpriseUserService.updateUserRegionPathList(userIds); - } - } - - public UserRegionMappingDO buildUserRegionMappingDO(String userId, Long regionId) { - UserRegionMappingDO userRegionMappingDO = new UserRegionMappingDO(); - userRegionMappingDO.setUserId(userId); - userRegionMappingDO.setRegionId(String.valueOf(regionId)); - return userRegionMappingDO; - } - - public void initRootRegion(List sysDepartmentDTOS, String dbName) { - - try { - Optional first = sysDepartmentDTOS.stream() - .filter(s -> Objects.equals(CommonConstants.ROOT_DEPT_ID_STR, s.getId())).findFirst(); - - if (first.isPresent()) { - DataSourceHelper.changeToSpecificDataSource(dbName); - SysDepartmentDTO sysDepartmentDTO = first.get(); - RegionDO regionDO = new RegionDO(); - regionDO.setId(1L); - regionDO.setRegionType(RegionTypeEnum.ROOT.getType()); - regionDO.setName(sysDepartmentDTO.getName()); - regionDO.setCreateName(CommonConstants.SYSTEM_USER_ID); - regionDO.setCreateTime(Calendar.getInstance().getTimeInMillis()); - regionDO.setSynDingDeptId(CommonConstants.ROOT_DEPT_ID_STR); - regionDO.setUnclassifiedFlag(CommonConstants.ZERO); - regionDO.setRegionPath(null); - regionDO.setStoreNum(CommonConstants.ONE); - regionDAO.insertRegion(regionDO); - //同步部门为区域节点 - initRegionByDepartment(CommonConstants.ROOT_DEPT_ID_STR); - } - } catch (Exception e) { - log.error("enterpriseInit initRootRegion error,eid:{}", e); - throw new ServiceException(ErrorCodeEnum.FEISHU_SERVICE_ERROR); - } - } - - public void initRegionByDepartment(String deptId) { - //首次获取 获取根部门下一级的所有数据 - List queryDeptChildDTOS = sysDepartmentDAO.getDeptChildListByParentId(deptId); - if (CollectionUtils.isEmpty(queryDeptChildDTOS)) { - return; - } - List regionDOS = new ArrayList<>(); - List syncDingDeptIds = new ArrayList<>(); - for (QueryDeptChildDTO deptChildDTO : queryDeptChildDTOS) { - //设置上级区域的path,方便后续的追溯 - deptChildDTO.setPath("/" + deptId + "/"); - RegionDO regionDO = new RegionDO(); - regionDO.setParentId(String.valueOf(deptId)); - regionDO.setName(deptChildDTO.getName()); - regionDO.setCreateTime(System.currentTimeMillis()); - regionDO.setUpdateTime(System.currentTimeMillis()); - regionDO.setSynDingDeptId(String.valueOf(deptChildDTO.getId())); - regionDO.setRegionType(RegionTypeEnum.PATH.getType()); - //次序值 - regionDO.setOrderNum(deptChildDTO.getDepartOrder()); - regionDO.setRegionPath("/" + CommonConstants.ROOT_DEPT_ID_STR + "/"); - regionDO.setDeleted(Boolean.FALSE); - regionDOS.add(regionDO); - syncDingDeptIds.add(String.valueOf(deptChildDTO.getId())); - if (regionDOS.size() > CommonConstants.DEAL_RECORD_MAX_SIZE) { - //批量插入或更新 - regionDAO.batchInsertRegions(regionDOS); - regionDOS.clear(); - } - } - if (CollectionUtils.isNotEmpty(regionDOS)) { - //批量插入或更新 - regionDAO.batchInsertRegions(regionDOS); - } - //递归调用,接着获取下一层级的数据进行处理 - //获取region的id和部门id映射关系 - Map regionIdMap = regionDAO.getRegionSynDeptIdAndIdMapping(syncDingDeptIds); - handlerSubRegions(queryDeptChildDTOS, regionIdMap); - } - - public void initUser(List sysDepartmentDTOS, String corpId, String appType, String dbName, - List adminList, AuthInfoDTO authInfo, Set handlerUserIds) { - try { - //先查询是否存在未分组区域 - RegionDO unclassifiedRegionDO = regionDAO.getUnclassifiedRegionDO(); - //获取通讯录授权范围 - AuthScopeDTO authScope = isvHttpRequest.getAuthScope(corpId, appType); - List enterpriseUserDTOS = null; - if (CollectionUtils.isNotEmpty(authScope.getUserIdList())) { - //通过授权范围获取授权用户 - enterpriseUserDTOS = isvHttpRequest.getUserDetailByUserIds(corpId, authScope.getUserIdList(), appType); - } - List deptIdLists = ListUtils.emptyIfNull(sysDepartmentDTOS).stream().map(SysDepartmentDTO::getId).collect(Collectors.toList()); - //判断授权范围内是否有根节点,没有则移除 - if (CollectionUtils.isNotEmpty(authScope.getDeptIdList()) && !authScope.getDeptIdList().contains(CommonConstants.ROOT_DEPT_ID_STR)) { - deptIdLists.remove(CommonConstants.ROOT_DEPT_ID_STR); - sysDepartmentDTOS = ListUtils.emptyIfNull(sysDepartmentDTOS) - .stream() - .filter(a -> !a.getId().equals(CommonConstants.ROOT_DEPT_ID_STR)) - .collect(Collectors.toList()); - } - Map deptIdMap = ListUtils.emptyIfNull(sysDepartmentDTOS).stream() - .filter(d -> d.getParentId() != null) - .collect(Collectors.toMap(SysDepartmentDTO::getId, SysDepartmentDTO::getParentId)); - List authUsers = new ArrayList<>(); - - if (CollectionUtils.isNotEmpty(enterpriseUserDTOS)) { - EnterpriseUserRequest tempRequest; - EnterpriseUserDO tempDo; - for (EnterpriseUserDTO enterpriseUserDTO : enterpriseUserDTOS) { - tempDo = EnterpriseUserDTO.convertEnterpriseUserDTO2EnterpriseUserDO(enterpriseUserDTO); - tempRequest = new EnterpriseUserRequest(); - tempRequest.setEnterpriseUserDO(tempDo); - tempRequest.setDepartmentLists(ListOptUtils.getIntersection(enterpriseUserDTO.getDepartmentLists(), deptIdLists)); - tempRequest.setLeaderInDepts(ListOptUtils.getIntersection(enterpriseUserDTO.getIsLeaderInDepts(), deptIdLists)); - authUsers.add(tempRequest); - } - } - dealUsers(authUsers,corpId,dbName, deptIdMap, unclassifiedRegionDO.getId(), authInfo, handlerUserIds); - List deptUsers; - if (CollectionUtils.isNotEmpty(sysDepartmentDTOS)) { - - for (SysDepartmentDTO sysDepartmentDTO : sysDepartmentDTOS) { - //通过授权部门获取授权用户 - List departmentUsersQw = isvHttpRequest.getDepartmentUsers(corpId, sysDepartmentDTO.getId(), appType); - deptUsers = ListUtils.emptyIfNull(departmentUsersQw).stream().map(e -> { - EnterpriseUserRequest enterpriseUserRequest = new EnterpriseUserRequest(); - enterpriseUserRequest.setEnterpriseUserDO(EnterpriseUserDTO.convertEnterpriseUserDTO2EnterpriseUserDO(e)); - enterpriseUserRequest.setDepartmentLists(ListOptUtils.getIntersection(e.getDepartmentLists(), deptIdLists)); - enterpriseUserRequest.setLeaderInDepts(ListOptUtils.getIntersection(e.getIsLeaderInDepts(), deptIdLists)); - return enterpriseUserRequest; - }).collect(Collectors.toList()); - - if (CollectionUtils.isNotEmpty(deptUsers)) { - log.info("enterpriseInit initUser deptUsersInfo, corpId={}, deptId={}, userSize={}", corpId, sysDepartmentDTO.getId(), deptUsers.size()); - dealUsers(deptUsers, corpId, dbName, deptIdMap, unclassifiedRegionDO.getId(), authInfo, handlerUserIds); - } - } - } - } catch (Exception e) { - log.error("enterpriseInit initUser error,eid:{},appType:{}", appType, e); - throw new ServiceException(ErrorCodeEnum.FEISHU_SERVICE_ERROR); - } - } - - public void handlerSubRegions(List depts, Map regionIdMap) { - List regionDOS = new ArrayList<>(); - //暂存一层级的数据 - List results = new ArrayList<>(); - List syncDingDeptIds = new ArrayList<>(); - for (QueryDeptChildDTO dept : depts) { - //获取该层级的子节点处理 - List childDTOS = sysDepartmentDAO.getDeptChildListByParentId(String.valueOf(dept.getId())); - for (QueryDeptChildDTO deptChildDTO : childDTOS) { - //设置上级区域的path,方便后续的追溯 - deptChildDTO.setPath(dept.getPath() + regionIdMap.get(deptChildDTO.getParentId()) + "/"); - RegionDO regionDO = new RegionDO(); - regionDO.setParentId(String.valueOf(regionIdMap.get(deptChildDTO.getParentId()))); - regionDO.setCreateTime(System.currentTimeMillis()); - regionDO.setName(deptChildDTO.getName()); - regionDO.setSynDingDeptId(String.valueOf(deptChildDTO.getId())); - regionDO.setUpdateTime(System.currentTimeMillis()); - regionDO.setOrderNum(deptChildDTO.getDepartOrder()); - regionDO.setRegionType(RegionTypeEnum.PATH.getType()); - //次序值 - regionDO.setRegionPath(dept.getPath() + regionIdMap.get(deptChildDTO.getParentId()) + "/"); - regionDO.setDeleted(Boolean.FALSE); - regionDOS.add(regionDO); - syncDingDeptIds.add(String.valueOf(deptChildDTO.getId())); - } - //暂存该层级的子节点数据 - if (CollectionUtils.isNotEmpty(childDTOS)) { - results.addAll(childDTOS); - } - if (regionDOS.size() > CommonConstants.DEAL_RECORD_MAX_SIZE) { - //批量插入或更新 - regionDAO.batchInsertRegions(regionDOS); - regionDOS.clear(); - } - } - if (CollectionUtils.isNotEmpty(regionDOS)) { - //批量插入或更新 - regionDAO.batchInsertRegions(regionDOS); - } - //递归调用 - if (CollectionUtils.isNotEmpty(results)) { - //一次用完即清理 - regionIdMap.clear(); - //添加这一层的region的id和部门id映射关系 - regionIdMap.putAll(regionDAO.getRegionSynDeptIdAndIdMapping(syncDingDeptIds)); - handlerSubRegions(results, regionIdMap); - } - } - - - public List initDept(String corpId, String appType, String dbName) { - List departments = null; - try { - //获取所有部门 - departments = isvHttpRequest.getDepartments(corpId, appType, null); - if (CollectionUtils.isEmpty(departments)) { - log.info("enterpriseInit initDept getDepartments is empty,corpId:{},appType:{}", corpId, appType); - return departments; - } - List sysDepartmentDOS = new ArrayList<>(); - for (SysDepartmentDTO department : departments) { - sysDepartmentDOS.add(convertSysDepartmentDTO2SysDepartmentDO(department, appType)); - if(sysDepartmentDOS.size() > CommonConstants.DEAL_RECORD_MAX_SIZE){ - sysDepartmentDAO.batchInsertOrUpdate(sysDepartmentDOS); - sysDepartmentDOS.clear(); - } - } - - DataSourceHelper.changeToSpecificDataSource(dbName); - if(CollectionUtils.isNotEmpty(sysDepartmentDOS)){ - sysDepartmentDAO.batchInsertOrUpdate(sysDepartmentDOS); - } - } catch (Exception e) { - log.error("enterpriseInit initDept error,corpId:{},appType:{}", corpId, appType, e); - throw new ServiceException(ErrorCodeEnum.FEISHU_SERVICE_ERROR); - } - return departments; - } - - public void runEnterpriseScriptAndInitAuthUser(EnterpriseOpenMsg msg) { - DataSourceHelper.changeToSpecificDataSource(msg.getDbName()); - //执行脚本代码 - ClassPathResource rc = new ClassPathResource("script/enterpriseInit.sql"); - EncodedResource er = new EncodedResource(rc, "utf-8"); - HashMap objectObjectHashMap = new HashMap<>(); - objectObjectHashMap.put("enterpriseId", msg.getEid()); - String userId = msg.getAuthUserId(); - if(StringUtils.isBlank(userId)){ - objectObjectHashMap.put("userId", CommonConstants.SYSTEM_USER_ID); - } else { - objectObjectHashMap.put("userId", userId); - } - String groupId = UUIDUtils.get32UUID(); - objectObjectHashMap.put("groupId", groupId); - scriptUtil.executeSqlScript(er, objectObjectHashMap); - log.info("初始化开通用户"); - if (StringUtils.isNotBlank(msg.getAuthUserId())) { - //初始化开通用户 - initAuthUser(msg.getCorpId(), msg.getAppType(), msg.getAuthUserId(), userId, msg.getDbName()); - } - } - - public void initAuthUser(String corpId, String appType, String authUserId, String userId, String dbName) { - List userRoles = new ArrayList<>(); - Long roleIdByRoleEnum = sysRoleDAO.getRoleIdByRoleEnum(RoleEnum.MASTER.getRoleEnum()); - Long shopOwner = sysRoleDAO.getRoleIdByRoleEnum(RoleEnum.SHOPOWNER.getRoleEnum()); - Long subMaster = sysRoleDAO.getRoleIdByRoleEnum(RoleEnum.SUB_MASTER.getRoleEnum()); - //钉钉或者企业走用户,app开通不需要 - EnterpriseUserDTO userDTO = null; - try { - userDTO = isvHttpRequest.getUserDetailByUserId(corpId, authUserId, appType); - } catch (Exception e) { - log.error("getUserDetailByUserId error", e); - } - EnterpriseUserDO userDO = EnterpriseUserDTO.transUserDtoToDo(userDTO); - userDO.setMainAdmin(true); - userDO.setIsAdmin(true); - enterpriseUserDAO.batchInsertOrUpdate(Collections.singletonList(userDO)); - userRoles.add(new EnterpriseUserRole(roleIdByRoleEnum.toString(), userId)); - userRoles.add(new EnterpriseUserRole(shopOwner.toString(), userId)); - userRoles.add(new EnterpriseUserRole(subMaster.toString(), userId)); - enterpriseUserRoleDAO.insertBatchUserRole(userRoles); - } - - - private List getAdminList(List adminList) { - if(CollectionUtils.isEmpty(adminList)){ - return Lists.newArrayList(); - } - List resultList = new ArrayList<>(); - if(CollectionUtils.isNotEmpty(adminList)){ - for (String userId : adminList) { - EnterpriseUserRequest enterpriseUserRequest = new EnterpriseUserRequest(); - EnterpriseUserDO enterpriseUserDO = new EnterpriseUserDO(); - enterpriseUserDO.setId(userId); - enterpriseUserDO.setName(userId); - enterpriseUserDO.setUserId(userId); - enterpriseUserDO.setUnionid(userId); - enterpriseUserDO.setRoles(RoleEnum.MASTER.getId()); - enterpriseUserDO.setIsAdmin(Boolean.TRUE); - enterpriseUserDO.setActive(Boolean.TRUE); - enterpriseUserRequest.setEnterpriseUserDO(enterpriseUserDO); - enterpriseUserRequest.setDepartment("[1]"); - enterpriseUserRequest.setDepartments("[1]"); - resultList.add(enterpriseUserRequest); - } - } - return resultList; - } - - private EnterpriseUserRequest getAIUser() { - EnterpriseUserRequest enterpriseUserRequest = new EnterpriseUserRequest(); - EnterpriseUserDO enterpriseUserDO = new EnterpriseUserDO(); - enterpriseUserDO.setId(AIEnum.AI_ID.getCode()); - enterpriseUserDO.setName(AIEnum.AI_NAME.getCode()); - enterpriseUserDO.setUserId(AIEnum.AI_USERID.getCode()); - enterpriseUserDO.setMobile(AIEnum.AI_MOBILE.getCode()); - enterpriseUserDO.setRoles(AIEnum.AI_ROLES.getCode()); - enterpriseUserDO.setUnionid(AIEnum.AI_UUID.getCode()); - enterpriseUserDO.setIsAdmin(Boolean.TRUE); - enterpriseUserDO.setActive(Boolean.TRUE); - enterpriseUserRequest.setEnterpriseUserDO(enterpriseUserDO); - enterpriseUserRequest.setDepartment(AIEnum.AI_DEPARTMENT.getCode()); - enterpriseUserRequest.setDepartments(AIEnum.AI_DEPARTMENT.getCode()); - return enterpriseUserRequest; - } - - public SysDepartmentDO convertSysDepartmentDTO2SysDepartmentDO(SysDepartmentDTO dto, String appType) { - if (dto == null) { - return null; - } - SysDepartmentDO sysDepartmentDO = new SysDepartmentDO(); - sysDepartmentDO.setName(dto.getName()); - sysDepartmentDO.setId(dto.getId()); - sysDepartmentDO.setParentId(dto.getParentId()); - sysDepartmentDO.setDepartOrder(dto.getDepartOrder()); - sysDepartmentDO.setCreateDeptGroup(dto.getCreateDeptGroup()); - sysDepartmentDO.setAutoAddUser(dto.getAutoAddUser()); - sysDepartmentDO.setDepHiding(dto.getDepHiding()); - sysDepartmentDO.setDeptPerimits(dto.getDeptPerimits()); - sysDepartmentDO.setUserPerimits(dto.getUserPerimits()); - sysDepartmentDO.setOuterDept(dto.getOuterDept()); - sysDepartmentDO.setOuterPermitDepts(dto.getOuterPermitDepts()); - sysDepartmentDO.setOuterPermitUsers(dto.getOuterPermitUsers()); - sysDepartmentDO.setOrgDeptOwner(dto.getOrgDeptOwner()); - sysDepartmentDO.setDeptManagerUseridList(dto.getDeptManagerUseridList()); - sysDepartmentDO.setUserCount(dto.getUserCount()); - sysDepartmentDO.setUnactiveUserCount(dto.getUnactiveUserCount()); - sysDepartmentDO.setParentIds(dto.getParentIds()); - sysDepartmentDO.setSubIds(dto.getSubIds()); - return sysDepartmentDO; - } - - -} 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 new file mode 100644 index 000000000..3e9db7615 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java @@ -0,0 +1,31 @@ +package com.cool.store.service.impl; + +import com.cool.store.constants.CommonConstants; +import com.cool.store.dto.enterprise.*; +import com.cool.store.http.ISVHttpRequest; +import com.cool.store.service.EnterpriseSyncService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; + +/** + * @author zhangchenbiao + * @FileName: EnterpriseInitService + * @Description: 企业初始化 + * @date 2023-05-26 16:28 + */ + +@Slf4j +@Service +public class EnterpriseSyncServiceImpl implements EnterpriseSyncService { + @Resource + private ISVHttpRequest isvHttpRequest; + + @Override + public void syncAll() { + //同步部门 + List departments = isvHttpRequest.getSubDepartments(CommonConstants.ROOT_DEPT_ID_STR, true); + } +} 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 7e9eadef3..b5d1811e7 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,6 +1,5 @@ package com.cool.store.service.impl; -import cn.hutool.core.util.StrUtil; import com.cool.store.constants.CommonConstants; import com.cool.store.context.CurrentUser; import com.cool.store.dao.*; @@ -9,14 +8,10 @@ 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.github.pagehelper.PageHelper; import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.ListUtils; -import org.apache.commons.collections4.MapUtils; -import org.apache.commons.collections4.SetUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -95,68 +90,15 @@ public class EnterpriseUserServiceImpl implements EnterpriseUserService { } enterpriseUserList.add(enterpriseUserDO); } - enterpriseUserDAO.batchUpdateDiffUserDiffRegionIds(enterpriseUserList); + //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) { - if (hasPage){ - PageHelper.startPage(pageNum,pageSize); - } - List enterpriseUserList = new ArrayList<>(); - //企微用户 用户名在数据表中加密,需要再次请求企业端接口根据名称去筛选数据 - if(roleId!=null){ - enterpriseUserList = enterpriseUserDAO.fuzzyUsersByDepartment(deptId, roleId, orderBy, orderRule, userName, jobNumber, userStatus, null,regionId); - }else { - enterpriseUserList= enterpriseUserDAO.fuzzyUsersByNotRole(deptId, orderBy, orderRule, userName, jobNumber, userStatus, null,regionId); - } - List resultList = new ArrayList<>(); - if(CollectionUtils.isEmpty(enterpriseUserList)){ - return resultList; - } - resultList = EnterpriseUserPageVO.transUserDOToVO(enterpriseUserList); - //填充角色信息如果存在角色信息 - List userIdList = initUserRole(resultList); - //根据人员查询该人员所在部门集合 - List userRegionMappingDOS = userRegionMappingDAO.listUserRegionMappingByUserId(userIdList); - //regionids 集合 - List regionIds = ListUtils.emptyIfNull(userRegionMappingDOS).stream().map(UserRegionMappingDO::getRegionId).distinct().collect(Collectors.toList()); - List regionDOs = new ArrayList<>(); - if (CollectionUtils.isNotEmpty(regionIds)){ - regionDOs = regionDAO.getRegionByRegionIds(regionIds); - } - //部门map KV key-部门id value-部门名称 - Map regionMap = ListUtils.emptyIfNull(regionDOs) - .stream() - .filter(a->a.getId()!=null&&a.getName()!=null) - .collect(Collectors.toMap(data->data.getId().toString(), RegionDO::getName, (a, b) -> a)); - //人员所在部门map key-人员id value-部门set集合(set去重) - Map> userRegionMap = ListUtils.emptyIfNull(userRegionMappingDOS) - .stream().filter(a->a.getId()!=null&&a.getRegionId()!=null) - .collect(Collectors.groupingBy(UserRegionMappingDO::getUserId, - Collectors.mapping(UserRegionMappingDO::getRegionId, Collectors.toSet()))); - - resultList.stream() - .forEach(data->{ - if(MapUtils.isNotEmpty(userRegionMap)&&MapUtils.isNotEmpty(regionMap)) { - Set regions = userRegionMap.get(data.getUserId()); - String deptNames = SetUtils.emptyIfNull(regions) - .stream() - .map(dept -> regionMap.get(dept.toString())) - .filter(StringUtils::isNotBlank) - .collect(Collectors.joining(CommonConstants.COMMA)); - data.setDepartment(deptNames); - } - }); - // 添加至常用联系人 - if (StringUtils.isNotBlank(userName)) { - List userIds = enterpriseUserList.stream().map(EnterpriseUserDO::getUserId).collect(Collectors.toList()); - //lruService.putRecentUseUser(enterpriseId, UserHolder.getUser().getUserId(), userIds); - } - return resultList; + return null; } private void addUserRegionMappingDO(String userId,String regionId,CurrentUser currentUser){ @@ -212,45 +154,6 @@ public class EnterpriseUserServiceImpl implements EnterpriseUserService { return userIdList; } - @Override - public Map getUserRegion(List userIdList) { - Map resultMap = Maps.newHashMap(); - //根据人员查询该人员所在部门集合 - List userRegionMappingDOS = userRegionMappingDAO.listUserRegionMappingByUserId(userIdList); - //regionids 集合 - List regionIds = ListUtils.emptyIfNull(userRegionMappingDOS).stream() - .map(UserRegionMappingDO::getRegionId).distinct().collect(Collectors.toList()); - - List regionDOs = new ArrayList<>(); - if (CollectionUtils.isNotEmpty(regionIds)){ - regionDOs = regionDAO.getRegionByRegionIds(regionIds); - } - //部门map KV key-部门id value-部门名称 - Map regionMap = ListUtils.emptyIfNull(regionDOs) - .stream() - .filter(a->a.getId()!=null&&a.getName()!=null) - .collect(Collectors.toMap(data->data.getId().toString(), RegionDO::getName, (a, b) -> a)); - //人员所在部门map key-人员id value-部门set集合(set去重) - Map> userRegionMap = ListUtils.emptyIfNull(userRegionMappingDOS) - .stream().filter(a->a.getId()!=null&&a.getRegionId()!=null) - .collect(Collectors.groupingBy(UserRegionMappingDO::getUserId, - Collectors.mapping(UserRegionMappingDO::getRegionId, Collectors.toSet()))); - userIdList.stream() - .forEach(userId->{ - if(MapUtils.isNotEmpty(userRegionMap)&&MapUtils.isNotEmpty(regionMap)) { - Set regions = userRegionMap.get(userId); - - String deptNames = SetUtils.emptyIfNull(regions) - .stream() - .map(dept -> regionMap.get(dept.toString())) - .filter(StrUtil::isNotBlank) - .collect(Collectors.joining(CommonConstants.COMMA)); - resultMap.put(userId, deptNames); - } - }); - return resultMap; - } - @Override public void updateUserDeptPath(EnterpriseUserRequest user, Map deptIdMap) { List departmentLists = user.getDepartmentLists(); @@ -271,12 +174,11 @@ public class EnterpriseUserServiceImpl implements EnterpriseUserService { deptList.add(data); }); user.setDepartments("[" + String.join(",", deptList) + "]"); - user.getEnterpriseUserDO().setDepartments("[" + String.join(",", deptList) + "]"); } } @Override - public EnterpriseUserDO selectByUserIdIgnoreActive(String userId) { - return enterpriseUserDAO.selectByUserIdIgnoreActive(userId); + public EnterpriseUserDO getUserInfoByUserId(String userId) { + return enterpriseUserDAO.getUserInfoById(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 c68149380..e2dfc1235 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 @@ -7,8 +7,6 @@ import com.cool.store.context.CurrentUser; import com.cool.store.context.DataSourceContext; import com.cool.store.dao.*; import com.cool.store.dto.login.RefreshUser; -import com.cool.store.entity.EnterpriseConfigDO; -import com.cool.store.entity.EnterpriseDO; import com.cool.store.entity.EnterpriseUserDO; import com.cool.store.entity.SysRoleDO; import com.cool.store.enums.ErrorCodeEnum; @@ -34,11 +32,6 @@ import java.util.Objects; @Service @Slf4j public class LoginServiceImpl implements LoginService { - - @Resource - private EnterpriseConfigDAO enterpriseConfigDAO; - @Resource - private EnterpriseDAO enterpriseDAO; @Resource private EnterpriseUserDAO enterpriseUserDAO; @Resource @@ -58,28 +51,13 @@ public class LoginServiceImpl implements LoginService { if (StringUtils.isEmpty(corpId)) { throw new ServiceException(ErrorCodeEnum.ENTERPRISE_NOT_EXIST); } - EnterpriseConfigDO enterpriseConfig = enterpriseConfigDAO.getConfigByCorpIdAndAppType(corpId, appType); - if (enterpriseConfig == null) { - throw new ServiceException(ErrorCodeEnum.ENTERPRISE_INIT); - } - EnterpriseDO enterprise = enterpriseDAO.getEnterpriseById(); - if (enterprise == null || enterprise.getStatus() == CommonConstants.ZERO) { - throw new ServiceException(ErrorCodeEnum.ENTERPRISE_INIT); - } CurrentUser currentUser = new CurrentUser(); RefreshUser refreshUser = new RefreshUser(); - String dbName = enterpriseConfig.getDbName(); - // 切到企业库 - DataSourceContext.setDataSourceType(dbName); // 查企业用户 EnterpriseUserDO enterpriseUser = enterpriseUserDAO.getUserInfoById(userId); if(enterpriseUser == null){ throw new ServiceException(ErrorCodeEnum.NOT_AUTH); } - //冻结登录 超登用户过滤 - if (enterprise.getStatus() == CommonConstants.HUNDRED && !StringUtils.equals(enterpriseUser.getUserId(), "a100000001")) { - throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR.getCode(), "企业被冻结"); - } SysRoleDO sysRole = sysRoleDAO.getHighestPrioritySysRoleDoByUserId(userId); if(Objects.isNull(sysRole)){ log.info("当前用户没角色:{}", userId); @@ -97,19 +75,15 @@ public class LoginServiceImpl implements LoginService { enterpriseUser.setAvatar(finalAvatar); enterpriseUser.setFaceUrl(finalAvatar); currentUser.setUserId(enterpriseUser.getUserId()); - currentUser.setDbName(enterpriseConfig.getDbName()); currentUser.setIsAdmin(enterpriseUser.getIsAdmin()); - currentUser.setMainCorpId(enterpriseConfig.getMainCorpId()); //设置当前登录人使用的企业相关信息 currentUser.setRoleAuth(sysRole.getRoleAuth()); currentUser.setSysRoleDO(sysRole); - currentUser.setEnterpriseId(enterprise.getId()); //生成令牌 RandomNumberGenerator randomNumberGenerator = new SecureRandomNumberGenerator(); String token = randomNumberGenerator.nextBytes().toHex(); String refreshToken = randomNumberGenerator.nextBytes().toHex(); currentUser.setName(enterpriseUser.getName()); - currentUser.setDingCorpId(enterpriseConfig.getDingCorpId()); currentUser.setAccessToken(token); currentUser.setAppType(appType); JSONObject jsonObject = new JSONObject(); diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/PartnerBWebApplication.java b/coolstore-partner-webb/src/main/java/com/cool/store/PartnerBWebApplication.java index fa45ab139..de7693743 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/PartnerBWebApplication.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/PartnerBWebApplication.java @@ -22,9 +22,6 @@ import javax.sql.DataSource; */ @SpringBootApplication @MapperScan("com.cool.store.mapper") -@EnableAsync -@EnableCaching -@ServletComponentScan public class PartnerBWebApplication { public static void main(String[] args) { diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/config/CommonBeanConfig.java b/coolstore-partner-webb/src/main/java/com/cool/store/config/CommonBeanConfig.java deleted file mode 100644 index 471e260c8..000000000 --- a/coolstore-partner-webb/src/main/java/com/cool/store/config/CommonBeanConfig.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.cool.store.config; - -import com.alibaba.fastjson.JSONObject; -import com.cool.store.config.datasource.DynamicDataSourceServiceImpl; -import com.cool.store.dto.DatasourceInfoDTO; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import javax.annotation.PostConstruct; -import java.util.List; - -/** - * @author zhangchenbiao - * @FileName: CommonBeanConfig - * @Description: - * @date 2023-05-19 18:41 - */ -@Slf4j -@Component -public class CommonBeanConfig { - - @Autowired - private DynamicDataSourceServiceImpl dynamicDataSourceServiceImpl; - - - @PostConstruct - public void loadDataSource(){ - List dbServerList = dynamicDataSourceServiceImpl.getDbNodes(); - if (CollectionUtils.isEmpty(dbServerList)) { - return; - } - dbServerList.forEach(node -> { - dynamicDataSourceServiceImpl.createDataSource(node); - }); - log.info("数据源加载完毕:{}", JSONObject.toJSONString(dbServerList)); - } - -} diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/config/datasource/DynamicDataSource.java b/coolstore-partner-webb/src/main/java/com/cool/store/config/datasource/DynamicDataSource.java deleted file mode 100644 index aa55426c1..000000000 --- a/coolstore-partner-webb/src/main/java/com/cool/store/config/datasource/DynamicDataSource.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.cool.store.config.datasource; - -import com.cool.store.constants.CommonConstants; -import com.cool.store.context.DataSourceContext; -import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Primary; -import org.springframework.jdbc.datasource.AbstractDataSource; -import org.springframework.stereotype.Component; - -import javax.sql.DataSource; -import java.sql.Connection; -import java.sql.SQLException; -import java.util.Map; - -@Primary -@Component -public class DynamicDataSource extends AbstractDataSource { - - private static final Logger logger = LoggerFactory.getLogger(DynamicDataSource.class); - - @Autowired - private DataSource defaultDataSource; - - @Autowired - private DynamicDataSourceServiceImpl dynamicDataSourceService; - - @Value("${default.database.name:coolcollege_intelligent_config}") - private String defaultDb; - - @Override - public Connection getConnection() throws SQLException { - String currentDbName = getCurrentDbName(); - if(defaultDb.equals(currentDbName)){ - Connection connection = defaultDataSource.getConnection(); - connection.setCatalog(currentDbName); - return connection; - } - Connection connection = this.determineTargetDataSource().getConnection(); - connection.setCatalog(currentDbName); - return connection; - } - - @Override - public Connection getConnection(String username, String password) throws SQLException { - String currentDbName = getCurrentDbName(); - if(defaultDb.equals(currentDbName)){ - Connection connection = defaultDataSource.getConnection(); - connection.setCatalog(currentDbName); - return connection; - } - Connection connection = this.determineTargetDataSource().getConnection(username, password); - connection.setCatalog(getCurrentDbName()); - return connection; - } - - @Override - public T unwrap(Class iface) throws SQLException { - return iface.isInstance(this) ? (T) this : this.determineTargetDataSource().unwrap(iface); - } - - @Override - public boolean isWrapperFor(Class iface) throws SQLException { - return iface.isInstance(this) || this.determineTargetDataSource().isWrapperFor(iface); - } - - - protected DataSource determineTargetDataSource() { - DataSource dataSource = null; - Map resolvedDataSources = dynamicDataSourceService.getResolvedDataSources(); - if (resolvedDataSources != null) { - String lookupKey = getDbServerByDbName(); - if (StringUtils.isNotBlank(lookupKey)) { - dataSource = resolvedDataSources.get(lookupKey); - } - } - if (dataSource == null) { - dataSource = defaultDataSource; - } - return dataSource; - } - - /** - * 通过dbName获取dbServer - * - * @return - */ - protected String getDbServerByDbName() { - String dbName = getCurrentDbName(); - return dynamicDataSourceService.getDbServerByDbName(dbName); - } - - /** - * 查询当前线程上下文对应的库名 - * - * @return - */ - protected String getCurrentDbName() { - String dbName = DataSourceContext.getDataSourceType(); - if (StringUtils.isBlank(dbName)) { - dbName = defaultDb; - } - return dbName; - } - -} diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/config/datasource/DynamicDataSourceServiceImpl.java b/coolstore-partner-webb/src/main/java/com/cool/store/config/datasource/DynamicDataSourceServiceImpl.java deleted file mode 100644 index 413ff0b61..000000000 --- a/coolstore-partner-webb/src/main/java/com/cool/store/config/datasource/DynamicDataSourceServiceImpl.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.cool.store.config.datasource; - -import com.cool.store.constants.CommonConstants; -import com.cool.store.dto.DatasourceInfoDTO; -import com.cool.store.entity.EnterpriseConfigDO; -import com.cool.store.service.EnterpriseConfigService; -import com.cool.store.utils.DataSourceHelper; -import com.cool.store.utils.RedisUtilPool; -import com.cool.store.context.DataSourceContext; -import com.github.pagehelper.Page; -import com.github.pagehelper.PageHelper; -import com.zaxxer.hikari.HikariConfig; -import com.zaxxer.hikari.HikariDataSource; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; - -import javax.sql.DataSource; -import java.text.MessageFormat; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.concurrent.ConcurrentHashMap; - -/** - * @ClassName DynamicDataSourceServiceImpl - * @Description 用一句话描述什么 - */ -@Service -@Slf4j -public class DynamicDataSourceServiceImpl { - - private static int defaultMaxPoolSize = 150; - - private static String dbUrl = "jdbc:mysql://{0}:{1}/{2}?useSSL=false&useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&autoReconnect=true"; - - @Autowired - private RedisUtilPool redisUtilPool; - @Autowired - private MyHikariConfig myHikariConfig; - @Autowired - private EnterpriseConfigService enterpriseConfigService; - @Value("${default.database.name:coolcollege_intelligent_config}") - private String defaultDb; - /** - * 数据库实例和数据源的映射 - */ - private ConcurrentHashMap resolvedDataSources = new ConcurrentHashMap(); - - /** - * dbName 和 serverUrl的映射 - */ - private ConcurrentHashMap dbNameUrlServerMap = new ConcurrentHashMap(); - - /** - * 查询所有的企业数据库实例节点配置信息 - * - * @return - */ - public List getDbNodes() { - List configList = enterpriseConfigService.getDistinctDbServer(); - return DatasourceInfoDTO.convertList(configList); - } - - /** - * 根据dbName查询dbServer - * - * @param dbName - * @return - */ - public String getDbServerByDbName(String dbName) { - if(defaultDb.equals(dbName)){ - return null; - } - String dbServerUrl = dbNameUrlServerMap.get(dbName); - if(StringUtils.isBlank(dbServerUrl)){ - Page localPage = PageHelper.getLocalPage(); - if(Objects.nonNull(localPage)){ - PageHelper.clearPage(); - } - String currentDbName = DataSourceContext.getDataSourceType(); - DataSourceHelper.reset(); - EnterpriseConfigDO config = enterpriseConfigService.getDbInfoByDbName(dbName); - dbServerUrl = config.getDbServer(); - if(StringUtils.isNotBlank(currentDbName)){ - DataSourceContext.setDataSourceType(currentDbName); - } - if(Objects.nonNull(localPage)){ - //上下文中的东西及时还回去 - PageHelper.startPage(localPage.getPageNum(), localPage.getPageSize()); - } - dbNameUrlServerMap.put(dbName, dbServerUrl); - } - return dbServerUrl; - } - - public void createDataSource(DatasourceInfoDTO datasource) { - DataSource dataSource = buildDataSourceByConfig(datasource); - if (dataSource != null) { - this.resolvedDataSources.putIfAbsent(datasource.getDbServer(), dataSource); - } - } - - public Map getResolvedDataSources() { - return resolvedDataSources; - } - - - /** - * build datasource - * @param dbServerUrl - * @return - */ - private DataSource buildDataSourceByConfig(DatasourceInfoDTO datasource) { - HikariConfig hikariConfig = new HikariConfig(); - String url = MessageFormat.format(dbUrl, datasource.getDbServer(), String.valueOf(datasource.getDbPort()), datasource.getDbName()); - hikariConfig.setDriverClassName(myHikariConfig.getDriverClassName()); - hikariConfig.setMinimumIdle(myHikariConfig.getMinimumIdle()); - hikariConfig.setMaximumPoolSize(myHikariConfig.getMaximumPoolSize()); - hikariConfig.setMaxLifetime(myHikariConfig.getMaxLifetime()); - hikariConfig.setConnectionTimeout(myHikariConfig.getConnectionTimeout()); - hikariConfig.setIdleTimeout(myHikariConfig.getIdleTimeout()); - hikariConfig.setJdbcUrl(url); - hikariConfig.setUsername(datasource.getDbUser()); - hikariConfig.setPassword(datasource.getDbPwd()); - hikariConfig.setMaximumPoolSize(defaultMaxPoolSize); - String poolName = "HikariCP_" + datasource.getDbServer(); - hikariConfig.setPoolName(poolName); - HikariDataSource hikariDataSource = new HikariDataSource(hikariConfig); - log.info("{} dataSource is {}, maxPoolSize={}", poolName, hikariDataSource, hikariDataSource.getMaximumPoolSize()); - return hikariDataSource; - } -} diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/config/datasource/MyHikariConfig.java b/coolstore-partner-webb/src/main/java/com/cool/store/config/datasource/MyHikariConfig.java deleted file mode 100644 index 72e591bdb..000000000 --- a/coolstore-partner-webb/src/main/java/com/cool/store/config/datasource/MyHikariConfig.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.cool.store.config.datasource; - -import com.zaxxer.hikari.HikariConfig; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; - -@Component -@ConfigurationProperties("spring.datasource.hikari") -public class MyHikariConfig extends HikariConfig { -} 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 fe8cabf8b..8c6d7b2d9 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 @@ -1,10 +1,12 @@ package com.cool.store.controller; -import com.cool.store.entity.EnterpriseConfigDO; + +import com.cool.store.entity.EnterpriseUserDO; 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.EnterpriseConfigService; +import com.cool.store.service.EnterpriseUserService; import com.cool.store.utils.UUIDUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; @@ -13,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.List; /** * @author zhangchenbiao @@ -27,6 +30,10 @@ public class TestController { @Resource private SimpleMessageService simpleMessageService; + @Resource + private EnterpriseUserService enterpriseUserService; + @Resource + private ISVHttpRequest isvHttpRequest; @GetMapping("/sendMq") public ResponseResult sendMq(){ @@ -36,4 +43,55 @@ public class TestController { return ResponseResult.success(); } + @GetMapping("getUserInfo") + public ResponseResult getUserInfo(@RequestParam("userId")String userId){ + EnterpriseUserDO enterpriseUser = enterpriseUserService.getUserInfoByUserId(userId); + return ResponseResult.success(enterpriseUser); + } + + @GetMapping("getUserIdByCode") + public ResponseResult getUserIdByCode(@RequestParam("paramStr")String paramStr){ + return ResponseResult.success(isvHttpRequest.getUserIdByCode(paramStr)); + } + + @GetMapping("getUserDetailByUserId") + public ResponseResult getUserDetailByUserId(@RequestParam("userId")String userId){ + return ResponseResult.success(isvHttpRequest.getUserDetailByUserId(userId)); + } + + @GetMapping("getAdminUserList") + public ResponseResult getAdminUserList(){ + return ResponseResult.success(isvHttpRequest.getAdminUserList()); + } + + @GetMapping("getAuthInfo") + public ResponseResult getAuthInfo(){ + return ResponseResult.success(isvHttpRequest.getAuthInfo()); + } + + @GetMapping("getDepartments") + public ResponseResult getDepartments(@RequestParam("parentId")String parentId){ + return ResponseResult.success(isvHttpRequest.getDepartments(parentId)); + } + + @GetMapping("getAuthScope") + public ResponseResult getAuthScope(){ + return ResponseResult.success(isvHttpRequest.getAuthScope()); + } + + @GetMapping("getDepartmentUsers") + public ResponseResult getDepartmentUsers(@RequestParam("deptId")String deptId){ + return ResponseResult.success(isvHttpRequest.getDepartmentUsers(deptId)); + } + + @GetMapping("getUserDetailByUserIds") + public ResponseResult getUserDetailByUserIds(@RequestParam("userIds") List userIds){ + return ResponseResult.success(isvHttpRequest.getUserDetailByUserIds(userIds)); + } + + @GetMapping("getSubDepartments") + public ResponseResult getSubDepartments(@RequestParam("parentId")String parentId, @RequestParam("fetchChild")Boolean fetchChild){ + return ResponseResult.success(isvHttpRequest.getSubDepartments(parentId, fetchChild)); + } + } diff --git a/coolstore-partner-webb/src/main/resources/application-local.properties b/coolstore-partner-webb/src/main/resources/application-local.properties index c2a50f435..5c01609e8 100644 --- a/coolstore-partner-webb/src/main/resources/application-local.properties +++ b/coolstore-partner-webb/src/main/resources/application-local.properties @@ -36,7 +36,7 @@ customize_sub_table_size=10 mybatis.configuration.call-setters-on-nulls=true mybatis.configuration.map-underscore-to-camel-case=true -isv.domain = https://abstore-isv.coolstore.cn +isv.domain = http://localhost:31100 #rocketmq \u914D\u7F6E rocketmq.accessKey=zK2oVEz4G1ts23d2 diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/config/CommonBeanConfig.java b/coolstore-partner-webc/src/main/java/com/cool/store/config/CommonBeanConfig.java index 471e260c8..5af80049d 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/config/CommonBeanConfig.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/config/CommonBeanConfig.java @@ -2,7 +2,6 @@ package com.cool.store.config; import com.alibaba.fastjson.JSONObject; import com.cool.store.config.datasource.DynamicDataSourceServiceImpl; -import com.cool.store.dto.DatasourceInfoDTO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/config/datasource/DynamicDataSourceServiceImpl.java b/coolstore-partner-webc/src/main/java/com/cool/store/config/datasource/DynamicDataSourceServiceImpl.java index edde59a3d..60efd382d 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/config/datasource/DynamicDataSourceServiceImpl.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/config/datasource/DynamicDataSourceServiceImpl.java @@ -1,9 +1,6 @@ package com.cool.store.config.datasource; import com.cool.store.constants.CommonConstants; -import com.cool.store.dto.DatasourceInfoDTO; -import com.cool.store.entity.EnterpriseConfigDO; -import com.cool.store.service.EnterpriseConfigService; import com.cool.store.utils.RedisUtilPool; import com.cool.store.context.DataSourceContext; import com.github.pagehelper.Page;