zoujiajian 2 lat temu
rodzic
commit
88ae1450ee

+ 44 - 27
netflix-service/src/main/java/com/cyksj/service/sys/impl/SysConfigChangeRecordServiceImpl.java

@@ -5,18 +5,24 @@ import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.cyksj.common.EnvCommonService;
 import com.cyksj.common.constant.Constant;
+import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.util.Jsons;
 import com.cyksj.common.util.SmsUtil;
+import com.cyksj.enums.GatewayApiCode;
 import com.cyksj.mapper.manage.cms.CmsUserMapper;
 import com.cyksj.mapper.sys.SysConfigChangeRecordMapper;
 import com.cyksj.model.dto.YhServiceChangeDto;
 import com.cyksj.model.dto.YhServiceDto;
+import com.cyksj.model.entity.CmsUser;
 import com.cyksj.model.entity.SysConfigChangeRecord;
 import com.cyksj.service.sys.SysConfigChangeRecordService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
 /**
@@ -34,6 +40,10 @@ public class SysConfigChangeRecordServiceImpl extends ServiceImpl<SysConfigChang
 
 	@Override
 	public Boolean changeRecord(Long adminId, String sysKey, String sysValue, String updateValue) throws Exception {
+		CmsUser cmsUser = cmsUserMapper.selectById(adminId);
+		if (cmsUser == null) {
+			throw BusinessRuntimeException.getGatewayApiCode(GatewayApiCode.CMS_TOKEN_VALID);
+		}
 		//保存客服系统配置key前后更新数据
 		if (Constant.serviceKeys.contains(sysKey)) {
 			if (!StrUtil.equals(sysValue, updateValue)) {
@@ -41,8 +51,7 @@ public class SysConfigChangeRecordServiceImpl extends ServiceImpl<SysConfigChang
 				sysConfigChangeRecord.setSysKey(sysKey);
 				sysConfigChangeRecord.setPreValue(sysValue);
 				sysConfigChangeRecord.setBackValue(updateValue);
-				Optional.ofNullable(cmsUserMapper.selectById(adminId))
-						.ifPresent(cm -> sysConfigChangeRecord.setOperator(cm.getNickname()));
+				sysConfigChangeRecord.setOperator(cmsUser.getNickname());
 				//变更记录
 				List<YhServiceDto> before = Jsons.parseList(sysValue, YhServiceDto.class);
 				List<YhServiceDto> after = Jsons.parseList(updateValue, YhServiceDto.class);
@@ -50,25 +59,44 @@ public class SysConfigChangeRecordServiceImpl extends ServiceImpl<SysConfigChang
 				StringBuilder weekdayMsgNotifySb = new StringBuilder();
 				//客服值班变更记录
 				StringBuilder changeStr = new StringBuilder();
+				AtomicInteger saturdaySelect = new AtomicInteger(0);
+				AtomicInteger sundaySelect = new AtomicInteger(0);
 				for (int i = 0; i < before.size(); i++) {
 					YhServiceDto beforeServiceDto = before.get(i);
-					YhServiceDto afterServiceDto = after.get(i);
-					//变更记录
-					YhServiceChangeDto changeService = getChangeService(beforeServiceDto, afterServiceDto, weekdayMsgNotifySb);
-					if (changeService != null) {
-						if (changeStr.length() == 0) {
-							changeStr.append("客服").append(sysConfigChangeRecord.getOperator());
-						} else {
-							changeStr.append(";");
+					//节假日按钮 关闭开启不做处理
+					if (after.size() > i) {
+						YhServiceDto afterServiceDto = after.get(i);
+						//变更记录
+						YhServiceChangeDto changeService = getChangeService(beforeServiceDto, afterServiceDto);
+						if (changeService != null) {
+							if (changeStr.length() == 0) {
+								changeStr.append("客服").append(sysConfigChangeRecord.getOperator());
+							} else {
+								changeStr.append(";");
+							}
+							changeStr.append(changeService.toChangeString());
+						}
+
+						if ((StrUtil.equals(afterServiceDto.getSign(), "Saturday"))) {
+							saturdaySelect.addAndGet(afterServiceDto.getSelect().size());
+						}
+
+						if (StrUtil.equals(afterServiceDto.getSign(), "Sunday")) {
+							sundaySelect.addAndGet(afterServiceDto.getSelect().size());
 						}
-						changeStr.append(changeService.toChangeString());
 					}
 				}
-				sysConfigChangeRecord.setChangeStr(changeStr.toString());
+				if (saturdaySelect.get() != 0 && saturdaySelect.get() < 3) {
+					weekdayMsgNotifySb.append("周六");
+				}
+				if (sundaySelect.get() != 0 && sundaySelect.get() < 3) {
+					weekdayMsgNotifySb.append("周日");
+				}
+				if (changeStr.length() > 0) {
+					sysConfigChangeRecord.setChangeStr(changeStr.toString());
+				}
 				this.save(sysConfigChangeRecord);
 
-				System.out.println(weekdayMsgNotifySb);
-
 				if (weekdayMsgNotifySb.length() > 0 && envCommonService.isPrdEnv()) {
 					SmsUtil.sendLuoKey2Msg("手机号", String.format(Constant.DUTY_SERVICE_CHANGE_MSG, weekdayMsgNotifySb));
 				}
@@ -79,7 +107,7 @@ public class SysConfigChangeRecordServiceImpl extends ServiceImpl<SysConfigChang
 	}
 
 
-	public YhServiceChangeDto getChangeService(YhServiceDto beforeServiceDto, YhServiceDto afterServiceDto, StringBuilder weekdayMsgNotifySb) throws Exception {
+	public YhServiceChangeDto getChangeService(YhServiceDto beforeServiceDto, YhServiceDto afterServiceDto) {
 		Integer index = beforeServiceDto.getIndex();
 		String sign = beforeServiceDto.getSign();
 		String date = beforeServiceDto.getDate();
@@ -98,23 +126,12 @@ public class SysConfigChangeRecordServiceImpl extends ServiceImpl<SysConfigChang
 			}
 		});
 
-		List<String> weekendDaySelect = new ArrayList<>();
-
 		afterServiceDto.getSelect().forEach(afSelect -> {
 			if (beforeIndxMap.get(afSelect.getIndex()) == null) {
 				afterSelect.add(afSelect.getName());
 			}
-			weekendDaySelect.add(afSelect.getName());
 		});
 
-		if ((StrUtil.equals(sign, "Saturday") || StrUtil.equals(sign, "Sunday")) && weekendDaySelect.size() < 3) {
-			String week = StrUtil.equals(sign, "Saturday") ? "周六" : "周日";
-			if (weekdayMsgNotifySb.length() > 0) {
-				weekdayMsgNotifySb.append("、");
-			}
-			weekdayMsgNotifySb.append(week);
-		}
-
 		if (CollUtil.isNotEmpty(beforeSelect) || CollUtil.isNotEmpty(afterSelect)) {
 			YhServiceChangeDto yhServiceChangeDto = new YhServiceChangeDto();
 			yhServiceChangeDto.setSign(sign);