更新特定规则接口
@PostMapping("/updateSpecificRegulars") public Result<?> updateSpecificRegulars(@RequestBody UpdateSpecificRegularRequest request, HttpServletRequest httpServletRequest) { // 权限验证 String token = getAdminToken(httpServletRequest);
log.info("updateSpecificRegulars的请求报文:" + request);
List<SpecificRegular> specificRegulars = request.getSpecificRegular().toJavaList(SpecificRegular.class);
log.info("specificRegulars: " + specificRegulars);
List<SpecificRegular> specificRegularList = new ArrayList<>();
String phone = getPhone(request);
String userCode = getUserCode(request);
String specificRegularUpdate_uuid = redisTemplate.opsForValue().get("specificRegularUpdate_uuid" + phone);
String myCode = redisTemplate.opsForValue().get("sRegularUpdate_" + specificRegularUpdate_uuid + phone);
if (!StringUtils.hasText(myCode)) {
log.error("myCode为空!");
return new Result<>(ResultCode.FAIL);
}
if (!userCode.equals(myCode)) {
log.error("验证码错误!");
return new Result<>(ResultCode.CODE_FALSE);
}
log.info("验证码正确!");
if (!specificRegulars.isEmpty()) {
// 遍历前端发来的要修改信息的对象集合
specificRegularList = specificRegulars.stream()
.map(specificRegular -> {
SpecificRegular specificRegularMy = specificRegularService.queryOneSpecificRegularByID(specificRegular.getSpecificRegularId());
if (specificRegularMy == null) {
log.error("通过具体规则id找到具体规则为空");
throw new RuntimeException("通过具体规则id找到具体规则为空");
}
if (StringUtils.hasText(specificRegular.getVoiceBroadcastText()) && specificRegular.getDemeritState() != 0) {
log.info("语音播报文字不为空,扣分情况不为0");
if (!specificRegular.getVoiceBroadcastText().equals(specificRegularMy.getVoiceBroadcastText()) || !specificRegular.getDemeritState().equals(specificRegularMy.getDemeritState())) {
log.info("前端传来的参数与数据库里的参数不相等!");
specificRegularMy.setJudgeState(specificRegular.getJudgeState());
specificRegularMy.setSpecificJudgeParam(specificRegular.getSpecificJudgeParam());
specificRegularMy.setVoiceBroadcastText(specificRegular.getVoiceBroadcastText());
specificRegularMy.setDemeritState(specificRegular.getDemeritState());
} else {
log.info("语音包不需要重新生成(语音文字和扣分情况没变)");
}
} else if (StringUtils.hasText(specificRegular.getVoiceBroadcastText()) && specificRegular.getDemeritState() == 0) {
log.info("语音播报文字不为空,扣分情况为0");
if (!specificRegular.getVoiceBroadcastText().equals(specificRegularMy.getVoiceBroadcastText())) {
log.info("前端传来的参数与数据库里的参数不相等!");
specificRegularMy.setJudgeState(specificRegular.getJudgeState());
specificRegularMy.setSpecificJudgeParam(specificRegular.getSpecificJudgeParam());
specificRegularMy.setVoiceBroadcastText(specificRegular.getVoiceBroadcastText());
specificRegularMy.setDemeritState(specificRegular.getDemeritState());
} else {
log.info("语音文字和扣分情况没变,语音包不需要生成!");
}
} else if (!StringUtils.hasText(specificRegular.getVoiceBroadcastText()) && specificRegular.getDemeritState() == 0) {
log.info("语音播报文字为空,扣分情况为0,语音包不需要生成!");
}
specificRegularMy.setJudgeState(specificRegular.getJudgeState());
specificRegularMy.setSpecificJudgeParam(specificRegular.getSpecificJudgeParam());
return specificRegularMy;
})
.collect(Collectors.toList());
// for循环结束开始操作数据库
boolean batchUpdate = specificRegularService.updateBatchById(specificRegularList);
if (batchUpdate) {
log.info("具体规则批量修改成功!");
springToGameService.reloadUpdateSpecificRegular(specificRegularList);//通知游戏端修改的具体规则
return new Result<>(ResultCode.SUCCESS);
} else {
log.error("具体规则批量修改失败!");
return new Result<>(ResultCode.FAIL);
}
} else {
log.error("前端传回集合为空");
return new Result<>(ResultCode.FAIL);
}
}
private String getAdminToken(HttpServletRequest request) { String token = (String) request.getAttribute("claims_admin"); if (token == null || "".equals(token)) { throw new RuntimeException("权限不足!"); } return token; }
private String getPhone(UpdateSpecificRegularRequest request) { String phone = request.getPhone(); if (!StringUtils.hasText(phone)) { log.error("phone为空!"); throw new RuntimeException("phone为空!"); } return phone; }
private String getUserCode(UpdateSpecificRegularRequest request) { String userCode = request.getCode(); if (!StringUtils.hasText(userCode)) { log.error("userCode为空!"); throw new RuntimeException("userCode为空!"); } return userCode;
原文地址: https://www.cveoy.top/t/topic/qrSL 著作权归作者所有。请勿转载和采集!