From 3c8b298706fcc148339e31bec2bc2f27f07d18d6 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Mon, 19 Jun 2023 19:54:46 +0800 Subject: [PATCH] add interface --- .../coolstore-partner-common.iml | 7 +- .../com/cool/store/enums/AppTypeEnum.java | 213 ------------------ .../com/cool/store/enums/AuthRoleEnum.java | 58 ----- .../store/enums/EnterpriseStatusEnum.java | 52 ----- .../com/cool/store/enums/RegionTypeEnum.java | 39 ---- .../java/com/cool/store/enums/RoleEnum.java | 115 ---------- .../cool/store/enums/StoreIsDeleteEnum.java | 35 --- .../store/enums/SubordinateSourceEnum.java | 42 ---- .../store/enums/UserAuthMappingTypeEnum.java | 44 ---- .../cool/store/enums/UserPositionEnum.java | 33 +++ .../cool/store/enums/UserSelectRangeEnum.java | 43 ---- .../coolstore-partner-dao.iml | 7 +- .../com/cool/store/dao/EnterpriseUserDAO.java | 19 ++ .../store/dao/HyIntendDevZoneInfoDAO.java | 14 ++ .../java/com/cool/store/dao/RegionDAO.java | 12 + .../cool/store/dao/UserRegionMappingDAO.java | 12 + .../store/mapper/EnterpriseUserMapper.java | 16 ++ .../mapper/HyIntendDevZoneInfoMapper.java | 7 + .../com/cool/store/mapper/RegionMapper.java | 7 + .../store/mapper/UserRegionMappingMapper.java | 7 + .../resources/mapper/EnterpriseUserMapper.xml | 8 + .../mapper/HyIntendDevZoneInfoMapper.xml | 9 + .../main/resources/mapper/RegionMapper.xml | 4 + .../mapper/UserRegionMappingMapper.xml | 4 + .../coolstore-partner-model.iml | 7 +- .../buser/UserPositionAndUserScopeDTO.java | 23 ++ .../store/service/EnterpriseUserService.java | 16 +- .../impl/EnterpriseSyncServiceImpl.java | 13 +- .../impl/EnterpriseUserServiceImpl.java | 67 +++++- .../coolstore-partner-webb.iml | 7 +- .../cool/store/controller/TestController.java | 6 + .../coolstore-partner-webc.iml | 7 +- 32 files changed, 291 insertions(+), 662 deletions(-) delete mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/AppTypeEnum.java delete mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/AuthRoleEnum.java delete mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/EnterpriseStatusEnum.java delete mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/RegionTypeEnum.java delete mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/RoleEnum.java delete mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/StoreIsDeleteEnum.java delete mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/SubordinateSourceEnum.java delete mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/UserAuthMappingTypeEnum.java create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/UserPositionEnum.java delete mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/UserSelectRangeEnum.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/buser/UserPositionAndUserScopeDTO.java diff --git a/coolstore-partner-common/coolstore-partner-common.iml b/coolstore-partner-common/coolstore-partner-common.iml index c7be161ce..39193cf02 100644 --- a/coolstore-partner-common/coolstore-partner-common.iml +++ b/coolstore-partner-common/coolstore-partner-common.iml @@ -87,8 +87,6 @@ - - @@ -109,5 +107,10 @@ + + + + + \ No newline at end of file diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/AppTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/AppTypeEnum.java deleted file mode 100644 index 7da0779c0..000000000 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/AppTypeEnum.java +++ /dev/null @@ -1,213 +0,0 @@ -package com.cool.store.enums; - -import org.apache.commons.lang3.StringUtils; - -import java.util.Arrays; -import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; - -/** - * 应用类型 - */ -public enum AppTypeEnum { - // 数智门店-钉钉 - DING_DING("dingding","数智门店-钉钉"), - - //酷店掌-钉钉 - DING_DING2("dingding2","酷店掌-钉钉"), - - // 企业微信-数智门店 - WX_APP("qw","数智门店-企业微信"), - - // 企业微信-酷店掌 - WX_APP2("qw2","酷店掌-企业微信"), - - //用户自己添加 独立app - APP("app","数智门店-客户端"), - - /** - * 酷店掌-自建企业微信 - */ - WX_SELF_APP("qw_self", "酷店掌-自建企业微信"), - - /** - * 酷店掌-自建企业微信代开发 - */ - WX_SELF_DKF("qw_self_dkf", "酷店掌--自建企业微信代开发"), - - /** - * 酷店掌-企业微信私服 - */ - WX_PRIVATE_APP("qw_private", "酷店掌-企业微信私服"), - - WX_PRIVATE_ZHOU("qw_private_zdf","酷店掌-企业微信私服-周大福"), - - /** - * 门店通应用 - */ - ONE_PARTY_APP("one_party", "门店通-钉钉"), - - /** - * 飞书 - */ - FEI_SHU("fei_shu", "飞书") - - ; - private String value; - - private String message; - - private static final Map map = Arrays.stream(values()).collect(Collectors.toMap(AppTypeEnum::getValue, Function.identity())); - - AppTypeEnum(String value, String message) { - this.value = value; - this.message = message; - } - - public String getValue() { - return value; - } - - public String getMessage() { - return message; - } - - public static String getMessage(String value){ - if(StringUtils.isBlank(value)){ - return ""; - } - for (AppTypeEnum appTypeEnum : AppTypeEnum.values()) { - if(appTypeEnum.value.equals(value)){ - return appTypeEnum.message; - } - } - return ""; - } - - public static AppTypeEnum getAppType(String appType){ - for (AppTypeEnum appTypeEnum : AppTypeEnum.values()) { - if(appTypeEnum.value.equals(appType)){ - return appTypeEnum; - } - } - if(appType.startsWith(WX_SELF_APP.getValue())) { - return WX_SELF_APP; - } - if(appType.startsWith(WX_PRIVATE_APP.getValue())) { - return WX_PRIVATE_APP; - } - return null; - } - - /** - * 判断是否是钉钉平台 - * @param value - * @author: xugangkun - * @return java.lang.Boolean - * @date: 2021/10/26 15:03 - */ - public static Boolean isDingType(String value) { - if (DING_DING.getValue().equals(value) || DING_DING2.getValue().equals(value) || ONE_PARTY_APP.getValue().equals(value)) { - return true; - } - return false; - } - - /** - * 判断是否是企业微信平台 - * @param value - * @author: xugangkun - * @return java.lang.Boolean - * @date: 2021/10/26 15:03 - */ - public static Boolean isQwType(String value) { - if (WX_APP.getValue().equals(value) || WX_APP2.getValue().equals(value)) { - return true; - } - return false; - } - - /** - * 判断是否是飞书 - * @param value - * @author: xugangkun - * @return java.lang.Boolean - * @date: 2021/10/26 15:03 - */ - public static Boolean isFsType(String value) { - if (FEI_SHU.getValue().equals(value)) { - return true; - } - return false; - } - - /** - * 判断是否是酷店掌 - * @param value - * @author: xugangkun - * @return java.lang.Boolean - * @date: 2021/10/26 15:03 - */ - public static Boolean isCoolStore(String value) { - if (WX_APP2.getValue().equals(value) || DING_DING2.getValue().equals(value)) { - return true; - } - return false; - } - - /** - * 判断是否是数智门店 - * @param value - * @author: xugangkun - * @return java.lang.Boolean - * @date: 2021/10/26 15:03 - */ - public static Boolean isCoolCollege(String value) { - if (WX_APP.getValue().equals(value) || DING_DING.getValue().equals(value)) { - return true; - } - return false; - } - - /** - * 是否是企微自建应用或者企微私服 - * @param appType - * @return - */ - public static boolean isWxSelfAndPrivateType(String appType) { - if(StringUtils.isBlank(appType)){ - return false; - } - return appType.startsWith(AppTypeEnum.WX_SELF_APP.getValue()) - || appType.startsWith(AppTypeEnum.WX_PRIVATE_APP.getValue()); - } - - public static boolean qwIsGetUserName(String appType){ - if(StringUtils.isBlank(appType) || isDingType(appType)){ - return false; - } - return appType.startsWith(AppTypeEnum.WX_SELF_APP.getValue()) || appType.startsWith(AppTypeEnum.WX_PRIVATE_APP.getValue()) - || appType.startsWith(AppTypeEnum.WX_SELF_DKF.getValue()) || appType.startsWith(AppTypeEnum.WX_PRIVATE_ZHOU.getValue()); - } - - public static String getCode(String value){ - if(StringUtils.isBlank(value)){ - return ""; - } - for (AppTypeEnum appTypeEnum : AppTypeEnum.values()) { - if(appTypeEnum.message.equals(value)){ - return appTypeEnum.value; - } - } - return ""; - } - - public static AppTypeEnum parseValue(String value) { - return map.get(value); - } - - - - -} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/AuthRoleEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/AuthRoleEnum.java deleted file mode 100644 index f2507fce6..000000000 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/AuthRoleEnum.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.cool.store.enums; - -import java.util.Arrays; -import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; - -/** - * describe: - * - * @author zhouyiping - * @date 2020/10/13 - */ -public enum AuthRoleEnum { - /** - * 全企业数据 - */ - ALL("all", "全企业数据"), - - /** - * 所在组织架构包含下级 - */ - INCLUDE_SUBORDINATE("include_subordinate","所在组织架构包含下级"), - - -// /** -// * 所在的组织架构不包含下级 -// */ - NOT_INCLUDE_SUBORDINATE("not_include_subordinate","所在的组织架构不包含下级"), - - /** - * 仅自己的数据 - */ - PERSONAL("personal","仅自己的数据"); - - private String code; - private String msg; - - protected static final Map map = Arrays.stream(values()).collect( - Collectors.toMap(AuthRoleEnum::getCode, Function.identity())); - - AuthRoleEnum(String code, String msg){ - this.code=code; - this.msg=msg; - } - - public String getCode() { - return code; - } - - public String getMsg() { - return msg; - } - public static AuthRoleEnum getByCode(String code) { - return map.get(code); - } - -} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/EnterpriseStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/EnterpriseStatusEnum.java deleted file mode 100644 index f94b7cd1f..000000000 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/EnterpriseStatusEnum.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.cool.store.enums; - -import java.util.Objects; - -/** - * @author zhangchenbiao - * @FileName: EnterpriseStatusEnum - * @Description: - * @date 2021-09-17 15:53 - */ -public enum EnterpriseStatusEnum { - - /** - * 状态-1 已删除 0初始 1正常 100冻结 88创建失败 - */ - - DELETED(-1,"已删除"), - INIT(0,"初始"), - NORMAL(1,"正常"), - FREEZE(100,"冻结"), - CREATE_FAIL(88,"创建失败"), - ; - - - private int code; - private String message; - - EnterpriseStatusEnum(int code, String message) { - this.code = code; - this.message = message; - } - - public int getCode() { - return code; - } - - public String getMessage() { - return message; - } - - public static String getMessage(Integer code){ - if(Objects.isNull(code)){ - return ""; - } - for (EnterpriseStatusEnum value : EnterpriseStatusEnum.values()) { - if(code.equals(value.code)){ - return value.message; - } - } - return ""; - } -} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/RegionTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/RegionTypeEnum.java deleted file mode 100644 index b4b3b1c0b..000000000 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/RegionTypeEnum.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.cool.store.enums; - -/** - * @author Aaron - * @Description 业务统一返回码 - * @date 2019/12/20 - */ -public enum RegionTypeEnum { - /** - * - */ - ROOT("root", "根节点"), - - - PATH("path", "区域"), - - - STORE("store", "门店"); - - - private String type; - - - private String desc; - - RegionTypeEnum(String type, String desc) { - this.type = type; - this.desc = desc; - } - - public String getType() { - return type; - } - - public String getDesc() { - return desc; - } - -} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/RoleEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/RoleEnum.java deleted file mode 100644 index 3301410c2..000000000 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/RoleEnum.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.cool.store.enums; - -import lombok.Getter; -import lombok.Setter; - -import javax.management.relation.Role; -import java.util.Arrays; -import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; - -public enum RoleEnum { - - /** - * 管理员 - */ - MASTER("20000000", "管理员", 1,"master"), - /** - * 子管理员 - */ - SUB_MASTER("80000000", "子管理员", 2,"sub_master"), - /** - * 普通员工 - */ - EMPLOYEE("30000000", "未分配", 99999999,"employee"), - /** - * 部门负责人 - */ - DEPT_LEADER("40000000", "部门负责人", 10,"dept_leader"), - /** - * 店长 - */ - SHOPOWNER("50000000", "店长", 3,"shopowner"), - /** - * 运营 - */ - OPERATOR("60000000", "运营", 4,"operator"), - /** - * 店员 - */ - CLERK("70000000", "店员", 5,"clerk"); - - - private static final Map MAP = Arrays.stream(values()).collect( - Collectors.toMap(RoleEnum::getRoleEnum, Function.identity())); - - private static final Map ROLE_ID_MAP = Arrays.stream(values()).collect( - Collectors.toMap(RoleEnum::getId, Function.identity())); - - private String id; - private String name; - @Getter - @Setter - private Integer priority; - - private String roleEnum; - - - RoleEnum(String id, String name, Integer priority, String roleEnum) { - this.id = id; - this.name = name; - this.priority = priority; - this.roleEnum=roleEnum; - } - - public String getId() { - return id; - } - - public String getName() { - return name; - } - - public String getRoleEnum() { - return roleEnum; - } - - public static RoleEnum getByCode(String code) { - return MAP.get(code); - } - - /** - * 是否是管理员 及 子管理员 - * @param code - * @return - */ - public static boolean isAdmin(String code){ - if(MASTER.getRoleEnum().equals(code) || SUB_MASTER.getRoleEnum().equals(code)){ - return true; - } - return false; - } - - /** - * 根据id 判断 是否是管理员 及 子管理员 - * @param id - * @return - */ - public static boolean isAdminById(String id){ - if(MASTER.getId().equals(id) || SUB_MASTER.getId().equals(id)){ - return true; - } - return false; - } - - /** - * 是否包含角色id - * @param roleId - * @return - */ - public static boolean isContainsRoleId(String roleId){ - return ROLE_ID_MAP.containsKey(roleId); - } - -} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/StoreIsDeleteEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/StoreIsDeleteEnum.java deleted file mode 100644 index 28d189e8c..000000000 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/StoreIsDeleteEnum.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.cool.store.enums; - -import java.util.Arrays; -import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; - -/** - * 门店删除状态枚举 - */ -public enum StoreIsDeleteEnum { - EFFECTIVE("effective"),//有效 - - INVALID("invalid"),//无效 - - IGNORED("ignored"), //忽略 - - UN_SYNC("unSync"); // 未同步 - - private final String value; - - private static final Map map = Arrays.stream(values()).collect(Collectors.toMap(StoreIsDeleteEnum::getValue, Function.identity())); - - StoreIsDeleteEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - public static StoreIsDeleteEnum parse(int value) { - return map.get(value); - } -} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/SubordinateSourceEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/SubordinateSourceEnum.java deleted file mode 100644 index 201e55727..000000000 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/SubordinateSourceEnum.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.cool.store.enums; - -import java.util.Arrays; -import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; - -/** - * @author wxp - * @FileName: SubordinateSourceEnum - * @Description: auto自动关联 select手动选择 - * @date 2022-12-30 17:12 - */ -public enum SubordinateSourceEnum { - - AUTO("auto", "关联区域门店权限"), - SELECT("select", "手动选择"); - - private String code; - - private String msg; - - protected static final Map map = Arrays.stream(values()).collect( - Collectors.toMap(SubordinateSourceEnum::getCode, Function.identity())); - - SubordinateSourceEnum(String code, String msg) { - this.code = code; - this.msg = msg; - } - - public String getCode() { - return code; - } - - public String getMsg() { - return msg; - } - - public static SubordinateSourceEnum getByCode(String code) { - return map.get(code); - } -} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserAuthMappingTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserAuthMappingTypeEnum.java deleted file mode 100644 index 7623ef611..000000000 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserAuthMappingTypeEnum.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.cool.store.enums; - - -import java.util.Arrays; -import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; - -/** - * @author zyp - */ -public enum UserAuthMappingTypeEnum { - /** - * 区域 - */ - REGION("region","区域"), - /** - * 门店 - */ - STORE("store","门店"); - - private String code; - private String desc; - public static final Map map = Arrays.stream(values()).collect( - Collectors.toMap(UserAuthMappingTypeEnum::getCode, Function.identity())); - - UserAuthMappingTypeEnum(String code, String desc) { - this.code = code; - this.desc = desc; - } - - public String getCode() { - return code; - } - - public String getDesc() { - return desc; - } - - public static UserAuthMappingTypeEnum getByCode(String code) { - return map.get(code); - } - -} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserPositionEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserPositionEnum.java new file mode 100644 index 000000000..b119a5300 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserPositionEnum.java @@ -0,0 +1,33 @@ +package com.cool.store.enums; + +/** + * @author zhangchenbiao + * @FileName: UserPositionEnum + * @Description:用户身份 + * @date 2023-06-19 16:37 + */ +public enum UserPositionEnum { + + INVESTMENT_MANAGER("investment_manager", "招商经理"), + INVESTMENT_LEADER("investment_leader", "招商负责人"), + DEVELOPMENT_DIRECTOR("development_director", "开发主管"), + DEVELOPMENT_MANAGER("development_manager", "开发经理"), + ; + + private String code; + + private String message; + + UserPositionEnum(String code, String message) { + this.code = code; + this.message = message; + } + + public String getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserSelectRangeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserSelectRangeEnum.java deleted file mode 100644 index 66b24ac64..000000000 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserSelectRangeEnum.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.cool.store.enums; - -import java.util.Arrays; -import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; - -/** - * @author wxp - * @FileName: UserSelectRangeEnum - * @Description: 用户选取范围 共同编辑人范围:self-仅自己,all-全部人员,define-自定义 - * @date 2022-12-30 17:12 - */ -public enum UserSelectRangeEnum { - - SELF("self", "仅自己"), - ALL("all", "全部人员"), - DEFINE("define", "自定义"); - - private String code; - - private String msg; - - protected static final Map map = Arrays.stream(values()).collect( - Collectors.toMap(UserSelectRangeEnum::getCode, Function.identity())); - - UserSelectRangeEnum(String code, String msg) { - this.code = code; - this.msg = msg; - } - - public String getCode() { - return code; - } - - public String getMsg() { - return msg; - } - - public static UserSelectRangeEnum getByCode(String code) { - return map.get(code); - } -} diff --git a/coolstore-partner-dao/coolstore-partner-dao.iml b/coolstore-partner-dao/coolstore-partner-dao.iml index 048685afd..40cb9800b 100644 --- a/coolstore-partner-dao/coolstore-partner-dao.iml +++ b/coolstore-partner-dao/coolstore-partner-dao.iml @@ -110,8 +110,6 @@ - - @@ -131,6 +129,11 @@ + + + + + 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 35df62fe0..c2b568388 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 @@ -64,4 +64,23 @@ public class EnterpriseUserDAO { public List searchUserByRegionIdsAndKeyword(List regionIds, String keyword, boolean isLeader){ return enterpriseUserMapper.searchUserByRegionIdsAndKeyword(regionIds, keyword, isLeader); } + + public boolean isExistDeptUser(String regionId){ + if(StringUtils.isBlank(regionId)){ + return false; + } + return enterpriseUserMapper.getUserCountByRegionId(regionId) > CommonConstants.ZERO; + } + + /** + * 获取部门负责人 + * @param regionId + * @return + */ + public List getUserListByDeptLeader(String regionId){ + if(StringUtils.isBlank(regionId)){ + return Lists.newArrayList(); + } + return enterpriseUserMapper.getUserListByDeptLeader(regionId); + } } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyIntendDevZoneInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyIntendDevZoneInfoDAO.java index f37b1d57a..674ef6629 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyIntendDevZoneInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyIntendDevZoneInfoDAO.java @@ -5,6 +5,8 @@ import com.cool.store.entity.HyOpenAreaInfoDO; import com.cool.store.mapper.HyIntendDevZoneInfoMapper; import com.cool.store.mapper.HyOpenAreaInfoMapper; import com.github.pagehelper.PageInfo; +import com.google.common.collect.Lists; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -48,4 +50,16 @@ public class HyIntendDevZoneInfoDAO { return hyIntendDevZoneInfoMapper.getHyIntendDevZoneInfoList(type); } + /** + * 根据组织架构获取配置信息 + * @param regionIds + * @return + */ + public List getZoneInfoByRegionIds(List regionIds){ + if(CollectionUtils.isEmpty(regionIds)){ + return Lists.newArrayList(); + } + return hyIntendDevZoneInfoMapper.getZoneInfoByRegionIds(regionIds); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java index 4e0b2b782..60f3eaa21 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java @@ -96,4 +96,16 @@ public class RegionDAO { return regionMapper.deleteRegionByRegionId(regionId); } + /** + * 获取所有的子节点 + * @param leadDeptIds + */ + public List getSubRegionIds(List leadDeptIds) { + if(CollectionUtils.isEmpty(leadDeptIds)){ + return Lists.newArrayList(); + } + List regionList = getRegionByRegionIds(leadDeptIds); + List regionPathList = regionList.stream().map(RegionDO::getRegionPath).collect(Collectors.toList()); + return regionMapper.getSubRegionIds(regionPathList); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java index 953411d2b..fc8cd9f6f 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java @@ -84,4 +84,16 @@ public class UserRegionMappingDAO { return userRegionMappingMapper.getRegionIdsByUserId(userId); } + /** + * 获取用户列表 + * @param regionIds + * @return + */ + public List getUserListByRegionIds(List regionIds){ + if(CollectionUtils.isEmpty(regionIds)){ + return Lists.newArrayList(); + } + return userRegionMappingMapper.getUserListByRegionIds(regionIds); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java index bb043adb0..81a4bd25b 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java @@ -61,4 +61,20 @@ public interface EnterpriseUserMapper { * @return */ List searchUserByRegionIdsAndKeyword(@Param("regionIds") List regionIds, @Param("keyword") String keyword, @Param("isLeader") boolean isLeader); + + /** + * 获取部门用户数 + * @param regionId + * @return + */ + Integer getUserCountByRegionId(@Param("regionId") String regionId); + + + /** + * 获取部门负责人用户列表 + * @param regionId + * @return + */ + List getUserListByDeptLeader(String regionId); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyIntendDevZoneInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyIntendDevZoneInfoMapper.java index 9358f6e1c..c8d688481 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyIntendDevZoneInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyIntendDevZoneInfoMapper.java @@ -39,4 +39,11 @@ public interface HyIntendDevZoneInfoMapper { * @return */ List getHyIntendDevZoneInfoList(String type); + + /** + * 根据组织架构获取配置信息 + * @param regionIds + * @return + */ + List getZoneInfoByRegionIds(@Param("regionIds") List regionIds); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java index d3ce3ebd2..21e3dedb4 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java @@ -71,4 +71,11 @@ public interface RegionMapper { * @return */ Integer deleteRegionByRegionId(@Param("regionId") String regionId); + + /** + * 获取子节点 + * @param regionPathList + * @return + */ + List getSubRegionIds(@Param("regionPathList") List regionPathList); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java index afd2ce57d..acdcc490b 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java @@ -68,4 +68,11 @@ public interface UserRegionMappingMapper { * @return */ List getRegionIdsByUserId(@Param("userId") String userId); + + /** + * 获取用户列表 + * @param regionIds + * @return + */ + List getUserListByRegionIds(@Param("regionIds") List regionIds); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml index 7b89849c0..05e6c11b8 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml @@ -280,4 +280,12 @@ + + + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyIntendDevZoneInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyIntendDevZoneInfoMapper.xml index ec0b55d4a..3158fef7d 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyIntendDevZoneInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyIntendDevZoneInfoMapper.xml @@ -128,4 +128,13 @@ where type = #{type} and deleted = 0 + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml index c6f5aeb70..384477ea1 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml @@ -204,4 +204,8 @@ update region set deleted = 1 where region_id = #{regionId} + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/UserRegionMappingMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/UserRegionMappingMapper.xml index 4560fc962..73df66fb5 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/UserRegionMappingMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/UserRegionMappingMapper.xml @@ -131,4 +131,8 @@ select region_id from user_region_mapping where user_id = #{userId} + + \ No newline at end of file diff --git a/coolstore-partner-model/coolstore-partner-model.iml b/coolstore-partner-model/coolstore-partner-model.iml index 6b15b2012..d570c914c 100644 --- a/coolstore-partner-model/coolstore-partner-model.iml +++ b/coolstore-partner-model/coolstore-partner-model.iml @@ -88,8 +88,6 @@ - - @@ -110,6 +108,11 @@ + + + + + diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/buser/UserPositionAndUserScopeDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/buser/UserPositionAndUserScopeDTO.java new file mode 100644 index 000000000..74ea3cad7 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/buser/UserPositionAndUserScopeDTO.java @@ -0,0 +1,23 @@ +package com.cool.store.dto.buser; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author zhangchenbiao + * @FileName: UserPositionAndUserScopeDTO + * @Description: 员工角色&获取线索范围 + * @date 2023-06-19 16:33 + */ +@Data +public class UserPositionAndUserScopeDTO { + + @ApiModelProperty("招商经理用户ids") + private List investmentUserIds; + + @ApiModelProperty("开发经理用户ids") + private List developmentUserIds; + +} 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 ced52a735..675b05ba2 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,11 +1,9 @@ package com.cool.store.service; +import com.cool.store.dto.buser.UserPositionAndUserScopeDTO; import com.cool.store.entity.EnterpriseUserDO; -import com.cool.store.request.EnterpriseUserRequest; import com.cool.store.vo.EnterpriseUserSingleInfoVO; -import com.cool.store.vo.buser.EnterpriseUserPageVO; import java.util.List; -import java.util.Map; /** * @author zhangchenbiao @@ -25,4 +23,16 @@ public interface EnterpriseUserService { */ List getInvestmentManagerList(String type,String userId,String keyword); + + /** + * 获取用户角色已用户管辖的员工范围 + * @param userId + * @return + */ + UserPositionAndUserScopeDTO getUserIdsByScope(String userId); + + + + List getDevelopmentDirectorList(String wantShopArea); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java index 450fb20fe..b90cc309a 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java @@ -243,9 +243,20 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService { break; case DEPARTMENT_DELETED: boolean leafNode = regionDAO.isLeafNode(departmentDetail.getId()); - if(leafNode){ + boolean isExistUser = enterpriseUserDAO.isExistDeptUser(departmentDetail.getId()); + if(leafNode && !isExistUser){ //叶子节点的时候会删除部门 regionDAO.deleteRegionByRegionId(departmentDetail.getId()); + //清除负责人信息 + List leaderUserList = enterpriseUserDAO.getUserListByDeptLeader(departmentDetail.getId()); + for (EnterpriseUserDO enterpriseUser : leaderUserList) { + List existDeptIds = JSONObject.parseArray(enterpriseUser.getLeaderDeptIds()).stream().map(String::valueOf).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(existDeptIds)){ + existDeptIds.remove(departmentDetail.getId()); + } + enterpriseUser.setLeaderDeptIds(JSONObject.toJSONString(existDeptIds)); + } + enterpriseUserDAO.batchInsertOrUpdate(leaderUserList); }else{ syncAll(); } 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 f362583ed..f30d0cd05 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,8 +1,13 @@ package com.cool.store.service.impl; +import com.alibaba.fastjson.JSONObject; import com.cool.store.constants.CommonConstants; import com.cool.store.dao.*; +import com.cool.store.dto.buser.UserPositionAndUserScopeDTO; import com.cool.store.entity.*; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.enums.UserPositionEnum; +import com.cool.store.exception.ServiceException; import com.cool.store.service.EnterpriseUserService; import com.cool.store.service.ZoneService; import com.cool.store.vo.EnterpriseUserSingleInfoVO; @@ -10,10 +15,8 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * @author zhangchenbiao @@ -31,11 +34,13 @@ public class EnterpriseUserServiceImpl implements EnterpriseUserService { @Resource private EnterpriseUserRoleDAO enterpriseUserRoleDAO; @Resource - ZoneService zoneService; + private ZoneService zoneService; @Resource - RegionDAO regionDAO; + private RegionDAO regionDAO; @Resource - UserRegionMappingDAO userRegionMappingDAO; + private UserRegionMappingDAO userRegionMappingDAO; + @Resource + private HyIntendDevZoneInfoDAO hyIntendDevZoneInfoDAO; @@ -87,4 +92,52 @@ public class EnterpriseUserServiceImpl implements EnterpriseUserService { }); return enterpriseUserSingleInfoVOS; } + + @Override + public UserPositionAndUserScopeDTO getUserIdsByScope(String userId) { + EnterpriseUserDO userInfo = enterpriseUserDAO.getUserInfoById(userId); + if(Objects.isNull(userInfo)){ + throw new ServiceException(ErrorCodeEnum.USER_NOT_EXIST); + } + UserPositionAndUserScopeDTO result = new UserPositionAndUserScopeDTO(); + if(!userInfo.getIsLeader()){ + result.setDevelopmentUserIds(Arrays.asList(userId)); + result.setInvestmentUserIds(Arrays.asList(userId)); + return result; + } + List leadDeptIds = JSONObject.parseArray(userInfo.getLeaderDeptIds()).stream().map(String::valueOf).collect(Collectors.toList()); + //获取这些区域的子节点 + List subRegionIds = regionDAO.getSubRegionIds(leadDeptIds); + //这些部门是否关联了意向区域 + List zoneInfoList = hyIntendDevZoneInfoDAO.getZoneInfoByRegionIds(subRegionIds); + if(CollectionUtils.isEmpty(zoneInfoList)){ + result.setDevelopmentUserIds(Arrays.asList(userId)); + result.setInvestmentUserIds(Arrays.asList(userId)); + return result; + } + //意向区域 + List intendList = zoneInfoList.stream().filter(o -> "intent".equals(o.getType())).flatMap(o->JSONObject.parseArray(o.getAssociatedRegionId(), String.class).stream()).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(intendList)){ + //获取负责的区域 + intendList.retainAll(subRegionIds); + List userList = userRegionMappingDAO.getUserListByRegionIds(intendList); + userList.add(userId); + result.setInvestmentUserIds(userList); + } + //开发区域 + List developementList = zoneInfoList.stream().filter(o -> "developement".equals(o.getType())).flatMap(o->JSONObject.parseArray(o.getAssociatedRegionId(), String.class).stream()).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(developementList)){ + //获取负责的区域 + developementList.retainAll(subRegionIds); + List userList = userRegionMappingDAO.getUserListByRegionIds(developementList); + userList.add(userId); + result.setDevelopmentUserIds(userList); + } + return result; + } + + @Override + public List getDevelopmentDirectorList(String wantShopArea) { + return null; + } } diff --git a/coolstore-partner-webb/coolstore-partner-webb.iml b/coolstore-partner-webb/coolstore-partner-webb.iml index a2e227e0b..753dcbc15 100644 --- a/coolstore-partner-webb/coolstore-partner-webb.iml +++ b/coolstore-partner-webb/coolstore-partner-webb.iml @@ -51,6 +51,11 @@ + + + + + @@ -88,8 +93,6 @@ - - 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 8a6c7d9c4..81bdfcdbb 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 @@ -2,6 +2,7 @@ package com.cool.store.controller; import com.alibaba.fastjson.JSONObject; import com.cool.store.dao.EnterpriseUserDAO; +import com.cool.store.dto.buser.UserPositionAndUserScopeDTO; import com.cool.store.dto.calendar.CreateCalendarEventDTO; import com.cool.store.dto.calendar.DeleteCalendarEventDTO; import com.cool.store.dto.calendar.UpdateCalendarEventDTO; @@ -223,4 +224,9 @@ public class TestController { } } + @GetMapping("getUserIdsByScope") + public ResponseResult getUserIdsByScope(@RequestParam("userId") String userId){ + return ResponseResult.success(enterpriseUserService.getUserIdsByScope(userId)); + } + } diff --git a/coolstore-partner-webc/coolstore-partner-webc.iml b/coolstore-partner-webc/coolstore-partner-webc.iml index f6dc12615..ede671b45 100644 --- a/coolstore-partner-webc/coolstore-partner-webc.iml +++ b/coolstore-partner-webc/coolstore-partner-webc.iml @@ -51,6 +51,11 @@ + + + + + @@ -88,8 +93,6 @@ - -