zoujiajian hace 2 años
padre
commit
13d1210be5

+ 22 - 0
netflix-dao/src/main/java/com/cyksj/model/dto/SysServiceChangeDto.java

@@ -0,0 +1,22 @@
+package com.cyksj.model.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: SysServiceChangeDto
+ * 创建者: JavaZou
+ * 创建时间:2024/1/11 16:47
+ */
+@Getter
+@Setter
+public class SysServiceChangeDto {
+	private Boolean changeCsImg = false;
+
+	private Boolean changeCsName = false;
+
+	private List<Integer> updateFollowIndxs;
+}

+ 6 - 1
netflix-service/src/main/java/com/cyksj/service/sys/SysConfigChangeRecordService.java

@@ -1,8 +1,11 @@
 package com.cyksj.service.sys;
 package com.cyksj.service.sys;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.cyksj.model.dto.SysServiceChangeDto;
 import com.cyksj.model.entity.SysConfigChangeRecord;
 import com.cyksj.model.entity.SysConfigChangeRecord;
 
 
+import java.util.List;
+
 /**
 /**
  * 项目名: yhlxj
  * 项目名: yhlxj
  * 文件名: SysConfigChangeRecordService
  * 文件名: SysConfigChangeRecordService
@@ -10,5 +13,7 @@ import com.cyksj.model.entity.SysConfigChangeRecord;
  * 创建时间:2023/11/24 10:44
  * 创建时间:2023/11/24 10:44
  */
  */
 public interface SysConfigChangeRecordService extends IService<SysConfigChangeRecord> {
 public interface SysConfigChangeRecordService extends IService<SysConfigChangeRecord> {
-	Boolean changeRecord(Long adminId, String sysKey, String sysValue, String updateValue) throws Exception;
+	SysServiceChangeDto changeRecord(Long adminId, String sysKey, String sysValue, String updateValue) throws Exception;
+
+	void updateCorpFollowLinkConfig(List<Integer> updateFollowIndx) throws Exception;
 }
 }

+ 28 - 12
netflix-service/src/main/java/com/cyksj/service/sys/impl/SysConfigChangeRecordServiceImpl.java

@@ -13,9 +13,7 @@ import com.cyksj.mapper.corp.CorpCustomerAcquisitionLinkMapper;
 import com.cyksj.mapper.corp.CorpFollowActiveCodeMapper;
 import com.cyksj.mapper.corp.CorpFollowActiveCodeMapper;
 import com.cyksj.mapper.manage.cms.CmsUserMapper;
 import com.cyksj.mapper.manage.cms.CmsUserMapper;
 import com.cyksj.mapper.sys.SysConfigChangeRecordMapper;
 import com.cyksj.mapper.sys.SysConfigChangeRecordMapper;
-import com.cyksj.model.dto.YhServiceChangeDto;
-import com.cyksj.model.dto.YhServiceDto;
-import com.cyksj.model.dto.YhServiceNameDto;
+import com.cyksj.model.dto.*;
 import com.cyksj.model.entity.CmsUser;
 import com.cyksj.model.entity.CmsUser;
 import com.cyksj.model.entity.CorpCustomerAcquisitionLink;
 import com.cyksj.model.entity.CorpCustomerAcquisitionLink;
 import com.cyksj.model.entity.CorpFollowActiveCode;
 import com.cyksj.model.entity.CorpFollowActiveCode;
@@ -35,7 +33,10 @@ import org.springframework.stereotype.Service;
 
 
 import java.time.DayOfWeek;
 import java.time.DayOfWeek;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
@@ -66,11 +67,12 @@ public class SysConfigChangeRecordServiceImpl extends ServiceImpl<SysConfigChang
 	private final WxCorpOps corpOps;
 	private final WxCorpOps corpOps;
 
 
 	@Override
 	@Override
-	public Boolean changeRecord(Long adminId, String sysKey, String sysValue, String updateValue) throws Exception {
+	public SysServiceChangeDto changeRecord(Long adminId, String sysKey, String sysValue, String updateValue) throws Exception {
 		CmsUser cmsUser = cmsUserMapper.selectById(adminId);
 		CmsUser cmsUser = cmsUserMapper.selectById(adminId);
 		if (cmsUser == null) {
 		if (cmsUser == null) {
 			throw BusinessRuntimeException.getGatewayApiCode(GatewayApiCode.CMS_TOKEN_VALID);
 			throw BusinessRuntimeException.getGatewayApiCode(GatewayApiCode.CMS_TOKEN_VALID);
 		}
 		}
+		SysServiceChangeDto sysServiceChangeDto = new SysServiceChangeDto();
 		//保存客服系统配置key前后更新数据
 		//保存客服系统配置key前后更新数据
 		if (Constant.serviceKeys.contains(sysKey)) {
 		if (Constant.serviceKeys.contains(sysKey)) {
 			if (!StrUtil.equals(sysValue, updateValue)) {
 			if (!StrUtil.equals(sysValue, updateValue)) {
@@ -130,6 +132,7 @@ public class SysConfigChangeRecordServiceImpl extends ServiceImpl<SysConfigChang
 							SmsUtil.sendLuoKey2Msg(Constant.DUTY_SERVICE_CHANGE_NOTIFY_PHONE, String.format(Constant.DUTY_SERVICE_CHANGE_MSG, weekdayMsgNotifySb));
 							SmsUtil.sendLuoKey2Msg(Constant.DUTY_SERVICE_CHANGE_NOTIFY_PHONE, String.format(Constant.DUTY_SERVICE_CHANGE_MSG, weekdayMsgNotifySb));
 						}
 						}
 					}
 					}
+					sysServiceChangeDto.setChangeCsImg(true);
 				} else {
 				} else {
 					List<YhServiceNameDto> before = Jsons.parseList(sysValue, YhServiceNameDto.class);
 					List<YhServiceNameDto> before = Jsons.parseList(sysValue, YhServiceNameDto.class);
 					Map<Integer, List<YhServiceNameDto>> afterIndxMap = Jsons.parseList(updateValue, YhServiceNameDto.class).stream().collect(Collectors.groupingBy(YhServiceNameDto::getIndx));
 					Map<Integer, List<YhServiceNameDto>> afterIndxMap = Jsons.parseList(updateValue, YhServiceNameDto.class).stream().collect(Collectors.groupingBy(YhServiceNameDto::getIndx));
@@ -142,15 +145,15 @@ public class SysConfigChangeRecordServiceImpl extends ServiceImpl<SysConfigChang
 							}
 							}
 						}
 						}
 					});
 					});
+					if (CollUtil.isNotEmpty(updateFollowIndxList)) {
+						sysServiceChangeDto.setChangeCsName(true);
+						sysServiceChangeDto.setUpdateFollowIndxs(updateFollowIndxList);
+					}
 				}
 				}
 				this.save(sysConfigChangeRecord);
 				this.save(sysConfigChangeRecord);
-				if (CollUtil.isNotEmpty(updateFollowIndxList)) {
-					updateCorpFollowLinkConfig(updateFollowIndxList);
-				}
-				return true;
 			}
 			}
 		}
 		}
-		return false;
+		return sysServiceChangeDto;
 	}
 	}
 
 
 
 
@@ -192,13 +195,15 @@ public class SysConfigChangeRecordServiceImpl extends ServiceImpl<SysConfigChang
 		return null;
 		return null;
 	}
 	}
 
 
+	@Override
 	public void updateCorpFollowLinkConfig(List<Integer> updateFollowIndx) throws Exception {
 	public void updateCorpFollowLinkConfig(List<Integer> updateFollowIndx) throws Exception {
 		List<CorpFollowActiveCode> corpFollowActiveCodes = corpFollowActiveCodeMapper.selectActiveCodeByFollowIndx(updateFollowIndx);
 		List<CorpFollowActiveCode> corpFollowActiveCodes = corpFollowActiveCodeMapper.selectActiveCodeByFollowIndx(updateFollowIndx);
+		Map<Integer, List<CorpFollowServiceDto>> corpYhFollowService = sysCorpServiceRelateService.getCorpYhFollowService();
 		//去更新活码对应客服 成员id
 		//去更新活码对应客服 成员id
 		corpFollowActiveCodes.forEach(data -> {
 		corpFollowActiveCodes.forEach(data -> {
 			try {
 			try {
 				List<Integer> upUserIndxList = Jsons.parseList(data.getFollowStr(), Integer.class);
 				List<Integer> upUserIndxList = Jsons.parseList(data.getFollowStr(), Integer.class);
-				List<String> up_followStrList = sysCorpServiceRelateService.getFollowIdsByRelateIds(Jsons.parseList(data.getFollowStr(), Integer.class));
+				List<String> up_followStrList = getFollowIdsByIndxIds(corpYhFollowService, upUserIndxList);
 				String code_str = corpFollowDynamicConfigService.createCorpFollowActiveCode(up_followStrList, upUserIndxList, Constant.AC_CODE_KEY + data.getId(), data.getIsDuty());
 				String code_str = corpFollowDynamicConfigService.createCorpFollowActiveCode(up_followStrList, upUserIndxList, Constant.AC_CODE_KEY + data.getId(), data.getIsDuty());
 				data.setCodeStr(code_str);
 				data.setCodeStr(code_str);
 				Set<String> keys = redisService.keys(RedisService.key.CORP_FOLLOW_ACTIVE_CODE_KEY.getNameFormat(data.getId(), "*"));
 				Set<String> keys = redisService.keys(RedisService.key.CORP_FOLLOW_ACTIVE_CODE_KEY.getNameFormat(data.getId(), "*"));
@@ -222,7 +227,7 @@ public class SysConfigChangeRecordServiceImpl extends ServiceImpl<SysConfigChang
 					//值班客服
 					//值班客服
 					String userList = link.getUserList();
 					String userList = link.getUserList();
 
 
-					List<String> followIds = sysCorpServiceRelateService.getFollowIdsByRelateIds(Jsons.parseList(userList, Integer.class));
+					List<String> followIds = getFollowIdsByIndxIds(corpYhFollowService, Jsons.parseList(userList, Integer.class));
 					range.setUserList(followIds);
 					range.setUserList(followIds);
 					wxCpLinkUpd.setRange(range);
 					wxCpLinkUpd.setRange(range);
 					WxCpLinkAddResp wxCpLinkAddResp = corpOps.customerAcquisitionUpdateLink(null, wxCpLinkUpd);
 					WxCpLinkAddResp wxCpLinkAddResp = corpOps.customerAcquisitionUpdateLink(null, wxCpLinkUpd);
@@ -239,4 +244,15 @@ public class SysConfigChangeRecordServiceImpl extends ServiceImpl<SysConfigChang
 			XxlJobUtil.executeMarkDynamicRuleTagJob(XxlJobInfo.getExecuteTaskInstance(Constant.CORP_LINK_JOB_ID, StrUtil.EMPTY).toString());
 			XxlJobUtil.executeMarkDynamicRuleTagJob(XxlJobInfo.getExecuteTaskInstance(Constant.CORP_LINK_JOB_ID, StrUtil.EMPTY).toString());
 		}
 		}
 	}
 	}
+
+	public List<String> getFollowIdsByIndxIds(Map<Integer, List<CorpFollowServiceDto>> corpYhFollowService, List<Integer> indxIds) {
+		List<String> followIds = new ArrayList<>();
+		indxIds.forEach(indx -> {
+			List<CorpFollowServiceDto> corpFollowServiceDtos = corpYhFollowService.get(indx);
+			if (CollUtil.isNotEmpty(corpFollowServiceDtos)) {
+				followIds.add(corpFollowServiceDtos.get(0).getFollowId());
+			}
+		});
+		return followIds;
+	}
 }
 }

+ 7 - 2
netflix-web/src/main/java/com/cyksj/web/controller/sys/SysConfigController.java

@@ -15,6 +15,7 @@ import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.manage.help.HelpQuestionClassificationMapper;
 import com.cyksj.mapper.manage.help.HelpQuestionClassificationMapper;
 import com.cyksj.mapper.manage.help.HelpQuestionMapper;
 import com.cyksj.mapper.manage.help.HelpQuestionMapper;
 import com.cyksj.model.dto.EquipmentConfigDto;
 import com.cyksj.model.dto.EquipmentConfigDto;
+import com.cyksj.model.dto.SysServiceChangeDto;
 import com.cyksj.model.entity.HelpQuestion;
 import com.cyksj.model.entity.HelpQuestion;
 import com.cyksj.model.entity.HelpQuestionClassification;
 import com.cyksj.model.entity.HelpQuestionClassification;
 import com.cyksj.model.entity.SysConfig;
 import com.cyksj.model.entity.SysConfig;
@@ -100,15 +101,19 @@ public class SysConfigController {
 			}
 			}
 		}
 		}
 
 
-		Boolean isChanged = sysConfigChangeRecordService.changeRecord(adminId, sysConfig.getSysKey(), byId.getSysValue(), sysConfig.getSysValue());
+		SysServiceChangeDto changeRecord = sysConfigChangeRecordService.changeRecord(adminId, sysConfig.getSysKey(), byId.getSysValue(), sysConfig.getSysValue());
 
 
 		sysConfigService.updateById(sysConfig);
 		sysConfigService.updateById(sysConfig);
 
 
-		if (isChanged) {
+		if (changeRecord.getChangeCsImg()) {
 			//立即执行客服值班定时任务
 			//立即执行客服值班定时任务
 			XxlJobUtil.executeMarkDynamicRuleTagJob(XxlJobInfo.getExecuteTaskInstance(Constant.CORP_LINK_JOB_ID, StrUtil.EMPTY).toString());
 			XxlJobUtil.executeMarkDynamicRuleTagJob(XxlJobInfo.getExecuteTaskInstance(Constant.CORP_LINK_JOB_ID, StrUtil.EMPTY).toString());
 		}
 		}
 
 
+		if (changeRecord.getChangeCsName()) {
+			sysConfigChangeRecordService.updateCorpFollowLinkConfig(changeRecord.getUpdateFollowIndxs());
+		}
+
 		return GatewayResponse.SUCCESS.newBuilder().toResult(sysConfig);
 		return GatewayResponse.SUCCESS.newBuilder().toResult(sysConfig);
 	}
 	}