|
|
@@ -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);
|