|
|
@@ -46,6 +46,7 @@ public class SysCustomerUserCommonService {
|
|
|
|
|
|
/**
|
|
|
* 查询当前用户绑定的城市id集合,已处理权限(公海列表,我的客户页面查询列表使用),这两页面不需要区分小组长
|
|
|
+ *
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Long> queryUserCityIds(Long provinceId) {
|
|
|
@@ -64,6 +65,7 @@ public class SysCustomerUserCommonService {
|
|
|
|
|
|
/**
|
|
|
* 查询当前用户绑定的城市id集合,已处理权限(客户跟进页面查询列表使用),这个页面需要区分小组长
|
|
|
+ *
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Long> queryUserCityIds1(Long provinceId) {
|
|
|
@@ -82,6 +84,7 @@ public class SysCustomerUserCommonService {
|
|
|
|
|
|
/**
|
|
|
* 根据当前用户的一个(多个)城市id查询小组组长或全部小组绑定的人员信息,这个是带权限的,小组组长(绑定的小组下面的所有成员)或者管理员(所有组下面的成员)
|
|
|
+ *
|
|
|
* @param cityIds
|
|
|
* @return
|
|
|
*/
|
|
|
@@ -138,6 +141,7 @@ public class SysCustomerUserCommonService {
|
|
|
|
|
|
/**
|
|
|
* 根据非当前用户一个(多个)城市id一个(多个)小组id查询绑定的人员信息,这个是不带权限的
|
|
|
+ *
|
|
|
* @param cityIds
|
|
|
* @param groupIds
|
|
|
* @return
|
|
|
@@ -197,6 +201,7 @@ public class SysCustomerUserCommonService {
|
|
|
/**
|
|
|
* 查询顶部筛选条件的省,市,小组,人员数据,适用于公海客户,我的(私域)客户页面的顶部筛选条件的查询
|
|
|
* 根据身份权限查询用户的省市绑定用户信息(成员和小组组长权限相同),只区分管理员和非管理员权限
|
|
|
+ *
|
|
|
* @return
|
|
|
*/
|
|
|
public SysCustomerSelectBO querySelectDataByType1(Boolean allStatus, Boolean userStatus) {
|
|
|
@@ -223,6 +228,7 @@ public class SysCustomerUserCommonService {
|
|
|
/**
|
|
|
* 查询顶部筛选条件的省,市,小组,人员数据,适用于 客户跟进 页面的顶部筛选条件的查询
|
|
|
* 根据身份权限查询用户的省市绑定用户信息,区分管理员,小组组长,普通成员角色权限
|
|
|
+ *
|
|
|
* @return
|
|
|
*/
|
|
|
public SysCustomerSelectBO querySelectDataByType2(Boolean allStatus, Boolean userStatus) {
|
|
|
@@ -252,6 +258,7 @@ public class SysCustomerUserCommonService {
|
|
|
|
|
|
/**
|
|
|
* 学段信息
|
|
|
+ *
|
|
|
* @return
|
|
|
*/
|
|
|
public List<SelectBO> handleStageData() {
|
|
|
@@ -278,6 +285,7 @@ public class SysCustomerUserCommonService {
|
|
|
|
|
|
/**
|
|
|
* 产品信息
|
|
|
+ *
|
|
|
* @return
|
|
|
*/
|
|
|
public List<SelectBO> handleProductData() {
|
|
|
@@ -305,6 +313,7 @@ public class SysCustomerUserCommonService {
|
|
|
|
|
|
/**
|
|
|
* 类型信息,首单客户,存量客户
|
|
|
+ *
|
|
|
* @return
|
|
|
*/
|
|
|
public List<SelectBO> handleTypeData() {
|
|
|
@@ -338,6 +347,7 @@ public class SysCustomerUserCommonService {
|
|
|
|
|
|
/**
|
|
|
* 处理管理员角色
|
|
|
+ *
|
|
|
* @param provinceIds
|
|
|
* @param cityIds
|
|
|
* @param groupIds
|
|
|
@@ -367,6 +377,7 @@ public class SysCustomerUserCommonService {
|
|
|
|
|
|
/**
|
|
|
* 处理小组组长角色
|
|
|
+ *
|
|
|
* @param provinceIds
|
|
|
* @param cityIds
|
|
|
* @return
|
|
|
@@ -398,6 +409,7 @@ public class SysCustomerUserCommonService {
|
|
|
|
|
|
/**
|
|
|
* 处理普通成员角色
|
|
|
+ *
|
|
|
* @param provinceIds
|
|
|
* @param cityIds
|
|
|
* @param groupIds
|
|
|
@@ -429,6 +441,7 @@ public class SysCustomerUserCommonService {
|
|
|
|
|
|
/**
|
|
|
* 处理省市和和成员,小组
|
|
|
+ *
|
|
|
* @param provinceIds
|
|
|
* @param cityIds
|
|
|
* @param groupIds
|
|
|
@@ -461,56 +474,66 @@ public class SysCustomerUserCommonService {
|
|
|
SysUserGroupRelationEntity::getGroupId,
|
|
|
SysUserGroupRelationEntity::getProvinceId,
|
|
|
SysUserGroupRelationEntity::getCityId,
|
|
|
- SysUserGroupRelationEntity::getUserId
|
|
|
+ SysUserGroupRelationEntity::getUserId,
|
|
|
+ SysUserGroupRelationEntity::getCreatedAt
|
|
|
)
|
|
|
.in(SysUserGroupRelationEntity::getProvinceId, provinceIds)
|
|
|
.in(SysUserGroupRelationEntity::getCityId, cityIds)
|
|
|
.orderByAsc(SysUserGroupRelationEntity::getProvinceId)
|
|
|
);
|
|
|
if (userStatus) {
|
|
|
- regionData.forEach(province ->
|
|
|
+ regionData.forEach(province -> {
|
|
|
+ if(CollUtil.isNotEmpty(province.getSubData())){
|
|
|
province.getSubData().forEach(city -> {
|
|
|
- if (CollUtil.isNotEmpty(groupIds) && CollUtil.isNotEmpty(groupRelationEntityList)) {
|
|
|
-
|
|
|
- groupRelationEntityList.stream()
|
|
|
- .filter(x -> x.getProvinceId().equals(province.getId()))
|
|
|
- .filter(x -> x.getCityId().equals(city.getId()))
|
|
|
- .filter(x -> CollUtil.isNotEmpty(groupIds) && groupIds.contains(x.getGroupId()))
|
|
|
- .sorted(Comparator.comparing(SysUserGroupRelationEntity::getCreatedAt))
|
|
|
- .collect(Collectors.groupingBy(SysUserGroupRelationEntity::getGroupId, LinkedHashMap::new, Collectors.toList()))
|
|
|
- .forEach((key, value) -> {
|
|
|
- if (allStatus) {
|
|
|
- BindUserBO userBO = BindUserBO.builder().build();
|
|
|
- userBO.setProvinceId(province.getId());
|
|
|
- userBO.setCityId(city.getId());
|
|
|
- userBO.setGroupId(key);
|
|
|
- userBO.setUsername("全部");
|
|
|
- userBO.setSortCode(0);
|
|
|
- userBO.setSelectStatus(true);
|
|
|
- userData.add(userBO);
|
|
|
- }
|
|
|
- AtomicInteger sortCode = new AtomicInteger(0);
|
|
|
- value.forEach(user -> {
|
|
|
- if (CollUtil.isNotEmpty(userEntityList)) {
|
|
|
- userEntityList.stream()
|
|
|
- .filter(x -> x.getId().equals(user.getUserId()))
|
|
|
- .findFirst()
|
|
|
- .ifPresent(e -> {
|
|
|
- BindUserBO userBO = BindUserBO.builder().build();
|
|
|
- userBO.setId(user.getUserId());
|
|
|
- userBO.setProvinceId(user.getProvinceId());
|
|
|
- userBO.setCityId(user.getCityId());
|
|
|
- userBO.setGroupId(user.getGroupId());
|
|
|
- userBO.setUsername(e.getUserName());
|
|
|
- userBO.setSelectStatus(false);
|
|
|
- userBO.setSortCode(sortCode.incrementAndGet());
|
|
|
- userData.add(userBO);
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
- });
|
|
|
- }
|
|
|
- }));
|
|
|
+ if (CollUtil.isNotEmpty(groupIds) && CollUtil.isNotEmpty(groupRelationEntityList)) {
|
|
|
+
|
|
|
+ groupRelationEntityList.stream()
|
|
|
+ .filter(x -> x.getProvinceId().equals(province.getId()))
|
|
|
+ .filter(x -> x.getCityId().equals(city.getId()))
|
|
|
+ .filter(x -> CollUtil.isNotEmpty(groupIds) && groupIds.contains(x.getGroupId()))
|
|
|
+ .sorted(Comparator.comparing(SysUserGroupRelationEntity::getCreatedAt))
|
|
|
+ .collect(Collectors.groupingBy(SysUserGroupRelationEntity::getGroupId, LinkedHashMap::new, Collectors.toList()))
|
|
|
+ .forEach((key, value) -> {
|
|
|
+ if (allStatus) {
|
|
|
+ if(CollUtil.isEmpty(userData) || userData.stream().map(BindUserBO::getUsername).noneMatch("全部"::equals)){
|
|
|
+ BindUserBO userBO = BindUserBO.builder().build();
|
|
|
+ userBO.setProvinceId(province.getId());
|
|
|
+ userBO.setCityId(city.getId());
|
|
|
+ userBO.setGroupId(key);
|
|
|
+ userBO.setUsername("全部");
|
|
|
+ userBO.setSortCode(0);
|
|
|
+ userBO.setSelectStatus(true);
|
|
|
+ userData.add(userBO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ AtomicInteger sortCode = new AtomicInteger(0);
|
|
|
+ value.forEach(user -> {
|
|
|
+ if (CollUtil.isNotEmpty(userEntityList)) {
|
|
|
+ userEntityList.stream()
|
|
|
+ .filter(x -> x.getId().equals(user.getUserId()))
|
|
|
+ .findFirst()
|
|
|
+ .ifPresent(e -> {
|
|
|
+ if(CollUtil.isEmpty(userData)||userData.stream().map(BindUserBO::getId).noneMatch(user.getUserId()::equals)){
|
|
|
+ BindUserBO userBO = BindUserBO.builder().build();
|
|
|
+ userBO.setId(user.getUserId());
|
|
|
+ userBO.setProvinceId(user.getProvinceId());
|
|
|
+ userBO.setCityId(user.getCityId());
|
|
|
+ userBO.setGroupId(user.getGroupId());
|
|
|
+ userBO.setUsername(e.getUserName());
|
|
|
+ userBO.setSelectStatus(false);
|
|
|
+ userBO.setSortCode(sortCode.incrementAndGet());
|
|
|
+ userData.add(userBO);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
}
|
|
|
selectBO.setMemberData(userData);
|
|
|
return selectBO;
|
|
|
@@ -519,6 +542,7 @@ public class SysCustomerUserCommonService {
|
|
|
|
|
|
/**
|
|
|
* 处理普通成员数据
|
|
|
+ *
|
|
|
* @param provinceIds
|
|
|
* @param cityIds
|
|
|
* @param groupIds
|
|
|
@@ -557,6 +581,7 @@ public class SysCustomerUserCommonService {
|
|
|
|
|
|
/**
|
|
|
* 处理管理员角色数据
|
|
|
+ *
|
|
|
* @param provinceIds
|
|
|
* @param cityIds
|
|
|
* @param groupIds
|
|
|
@@ -602,6 +627,7 @@ public class SysCustomerUserCommonService {
|
|
|
|
|
|
/**
|
|
|
* 处理小组
|
|
|
+ *
|
|
|
* @param groupIds
|
|
|
* @return
|
|
|
*/
|
|
|
@@ -638,6 +664,7 @@ public class SysCustomerUserCommonService {
|
|
|
|
|
|
/**
|
|
|
* 处理省市
|
|
|
+ *
|
|
|
* @param provinceIds
|
|
|
* @param cityIds
|
|
|
* @return
|
|
|
@@ -694,6 +721,7 @@ public class SysCustomerUserCommonService {
|
|
|
|
|
|
/**
|
|
|
* 查询参数配置的基础信息数据
|
|
|
+ *
|
|
|
* @param type 类型:0-学段,1-产品,2-职务,3-跟进
|
|
|
* @return
|
|
|
*/
|