|
|
@ -5,10 +5,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
|
|
import com.qs.serve.common.util.CollectionUtil; |
|
|
|
import com.qs.serve.common.util.StringUtils; |
|
|
|
import com.qs.serve.modules.bms.common.MasterUserType; |
|
|
|
import com.qs.serve.modules.bms.entity.BmsMasterUser; |
|
|
|
import com.qs.serve.modules.bms.entity.BmsRegionUser; |
|
|
|
import com.qs.serve.modules.bms.mapper.BmsMasterUserMapper; |
|
|
|
import com.qs.serve.modules.bms.mapper.BmsRegionUserMapper; |
|
|
|
import com.qs.serve.modules.bms.entity.*; |
|
|
|
import com.qs.serve.modules.bms.mapper.*; |
|
|
|
import lombok.AllArgsConstructor; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
@ -34,6 +32,12 @@ public class HisUserChannelPointServiceImpl extends ServiceImpl<HisUserChannelPo |
|
|
|
private final BmsRegionUserMapper regionUserMapper; |
|
|
|
private final BmsMasterUserMapper masterUserMapper; |
|
|
|
|
|
|
|
private final BmsChannelPointMapper channelPointMapper; |
|
|
|
|
|
|
|
private final BmsRegionMapper regionMapper; |
|
|
|
private final BmsRegion2Mapper region2Mapper; |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public void removeByPointId(Long pointId) { |
|
|
|
LambdaQueryWrapper<HisUserChannelPoint> lqw = new LambdaQueryWrapper<>(); |
|
|
@ -46,14 +50,7 @@ public class HisUserChannelPointServiceImpl extends ServiceImpl<HisUserChannelPo |
|
|
|
this.removeByPointId(pointId); |
|
|
|
List<HisUserChannelPoint> channelPointList = new ArrayList<>(); |
|
|
|
if(StringUtils.hasText(saleRegionIds)){ |
|
|
|
List<String> saleRegionArr = Arrays.asList(saleRegionIds.split("_")); |
|
|
|
LambdaQueryWrapper<BmsRegionUser> lqw = new LambdaQueryWrapper<>(); |
|
|
|
lqw.in(BmsRegionUser::getRegionId,saleRegionArr); |
|
|
|
lqw.eq(BmsRegionUser::getType,0); |
|
|
|
lqw.select(BmsRegionUser::getUserId); |
|
|
|
List<BmsRegionUser> regionUserList = regionUserMapper.selectList(lqw); |
|
|
|
List<String> userIds = regionUserList.stream().map(BmsRegionUser::getUserId) |
|
|
|
.distinct().collect(Collectors.toList()); |
|
|
|
List<String> userIds = this.getUserIdByRegionIds(saleRegionIds,true); |
|
|
|
for (String userId : userIds) { |
|
|
|
HisUserChannelPoint userChannelPoint = new HisUserChannelPoint(); |
|
|
|
userChannelPoint.setUserId(userId); |
|
|
@ -63,16 +60,8 @@ public class HisUserChannelPointServiceImpl extends ServiceImpl<HisUserChannelPo |
|
|
|
channelPointList.add(userChannelPoint); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if(StringUtils.hasText(bizRegionIds)){ |
|
|
|
List<String> bizRegionArr = Arrays.asList(bizRegionIds.split("_")); |
|
|
|
LambdaQueryWrapper<BmsRegionUser> lqw = new LambdaQueryWrapper<>(); |
|
|
|
lqw.in(BmsRegionUser::getRegionId,bizRegionArr); |
|
|
|
lqw.eq(BmsRegionUser::getType,1); |
|
|
|
lqw.select(BmsRegionUser::getUserId); |
|
|
|
List<BmsRegionUser> regionUserList = regionUserMapper.selectList(lqw); |
|
|
|
List<String> userIds = regionUserList.stream().map(BmsRegionUser::getUserId) |
|
|
|
.distinct().collect(Collectors.toList()); |
|
|
|
List<String> userIds = this.getUserIdByRegionIds(bizRegionIds,false); |
|
|
|
for (String userId : userIds) { |
|
|
|
HisUserChannelPoint userChannelPoint = new HisUserChannelPoint(); |
|
|
|
userChannelPoint.setUserId(userId); |
|
|
@ -122,6 +111,34 @@ public class HisUserChannelPointServiceImpl extends ServiceImpl<HisUserChannelPo |
|
|
|
|
|
|
|
@Override |
|
|
|
public void flushBatchUserRegion(List<String> userIds, List<Long> pointIds, Integer sourceType, String regionIds) { |
|
|
|
this.flushRegion(sourceType,regionIds,userIds,pointIds,true); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void removeRegion(Integer sourceType, String regionIds) { |
|
|
|
LambdaQueryWrapper<HisUserChannelPoint> lqw = new LambdaQueryWrapper<>(); |
|
|
|
lqw.likeRight(HisUserChannelPoint::getSourceIds,regionIds); |
|
|
|
lqw.eq(HisUserChannelPoint::getSourceType,sourceType); |
|
|
|
this.remove(lqw); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void flushRegion(Integer sourceType, String regionIds) { |
|
|
|
this.removeRegion(sourceType,regionIds); |
|
|
|
List<String> userIds = this.getUserIdByRegionIds(regionIds,sourceType.equals(2)); |
|
|
|
List<Long> pointIds = this.getPointIdsByRegionIds(regionIds,sourceType.equals(2)); |
|
|
|
this.flushRegion(sourceType, regionIds, userIds, pointIds,false); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 基础的更新区域 |
|
|
|
* @param sourceType |
|
|
|
* @param regionIds |
|
|
|
* @param userIds |
|
|
|
* @param pointIds |
|
|
|
* @param delHisUserRegion |
|
|
|
*/ |
|
|
|
private void flushRegion(Integer sourceType, String regionIds, List<String> userIds, List<Long> pointIds,boolean delHisUserRegion) { |
|
|
|
List<HisUserChannelPoint> hisUserChannelPointList = new ArrayList<>(); |
|
|
|
for (String userId : userIds) { |
|
|
|
if(sourceType.equals(2)){ |
|
|
@ -144,5 +161,45 @@ public class HisUserChannelPointServiceImpl extends ServiceImpl<HisUserChannelPo |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 获取区域负责的用户ID |
|
|
|
* @param regionIds |
|
|
|
* @param isSaleRegion |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private List<String> getUserIdByRegionIds(String regionIds,boolean isSaleRegion){ |
|
|
|
List<String> regionArr = Arrays.asList(regionIds.split("_")); |
|
|
|
LambdaQueryWrapper<BmsRegionUser> lqw = new LambdaQueryWrapper<>(); |
|
|
|
lqw.in(BmsRegionUser::getRegionId,regionArr); |
|
|
|
lqw.eq(BmsRegionUser::getType,isSaleRegion?0:1); |
|
|
|
lqw.select(BmsRegionUser::getUserId); |
|
|
|
List<BmsRegionUser> regionUserList = regionUserMapper.selectList(lqw); |
|
|
|
List<String> userIds = regionUserList.stream().map(BmsRegionUser::getUserId) |
|
|
|
.distinct().collect(Collectors.toList()); |
|
|
|
return userIds; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 获取区域有那些网点 |
|
|
|
* @param regionIds |
|
|
|
* @param isSaleRegion |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private List<Long> getPointIdsByRegionIds(String regionIds,boolean isSaleRegion){ |
|
|
|
if(isSaleRegion){ |
|
|
|
LambdaQueryWrapper<BmsChannelPoint> lqw = new LambdaQueryWrapper<>(); |
|
|
|
lqw.likeRight(BmsChannelPoint::getSaleRegionPathIds,regionIds); |
|
|
|
lqw.select(BmsChannelPoint::getId); |
|
|
|
List<BmsChannelPoint> channelPoints = channelPointMapper.selectList(lqw); |
|
|
|
return channelPoints.stream().map(BmsChannelPoint::getId).collect(Collectors.toList()); |
|
|
|
}else { |
|
|
|
LambdaQueryWrapper<BmsChannelPoint> lqw = new LambdaQueryWrapper<>(); |
|
|
|
lqw.likeRight(BmsChannelPoint::getBizRegionPathIds,regionIds); |
|
|
|
lqw.select(BmsChannelPoint::getId); |
|
|
|
List<BmsChannelPoint> channelPoints = channelPointMapper.selectList(lqw); |
|
|
|
return channelPoints.stream().map(BmsChannelPoint::getId).collect(Collectors.toList()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|