批量修改具体规则信息-只修改规则
//2.批量修改具体规则信息-只修改规则
@PostMapping('/updateSpecificRegulars')
public Result<Object> updateSpecificRegulars(@RequestBody Map<String, Object> params, HttpServletRequest request) {
//权限验证
String token = (String) request.getAttribute('claims_admin');
if (token == null || ''.equals(token)) {
throw new RuntimeException('权限不足!');
}
log.info('updateSpecificRegulars的请求报文:' + params);
// 获取请求参数
String phone = (String) params.get('phone');//手机号
String userCode = (String) params.get('code');//验证码
JSONArray jsonArray = JSONArray.parseArray(params.get('specificRegular').toString());
// 验证手机号和验证码
if (!StringUtils.hasText(phone)) {
log.error('phone为空!');
return new Result<>(ResultCode.FAIL);
}
if (!StringUtils.hasText(userCode)) {
log.error('userCode为空!');
return new Result<>(ResultCode.FAIL);
}
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('验证码正确!');
// 处理具体规则
List<SpecificRegular> specificRegularList = new ArrayList<>();
for (Object obj : jsonArray) {
SpecificRegular specificRegular = JSON.parseObject(obj.toString(), SpecificRegular.class);
SpecificRegular specificRegularMy = specificRegularService.queryOneSpecificRegularByID(specificRegular.getSpecificRegularId());
redisTemplateByObject.opsForValue().set('SpecificRegularId'+specificRegular.getSpecificRegularId(), specificRegularMy);//缓存
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('语音包不需要重新生成(语音文字和扣分情况没变)');
specificRegularMy.setJudgeState(specificRegular.getJudgeState());
specificRegularMy.setSpecificJudgeParam(specificRegular.getSpecificJudgeParam());
}
} 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('语音文字和扣分情况没变,语音包不需要生成!');
specificRegularMy.setJudgeState(specificRegular.getJudgeState());
specificRegularMy.setSpecificJudgeParam(specificRegular.getSpecificJudgeParam());
}
} else if (!StringUtils.hasText(specificRegular.getVoiceBroadcastText()) && specificRegular.getDemeritState() == 0) {
log.info('语音播报文字为空,扣分情况为0,语音包不需要生成!');
specificRegularMy.setJudgeState(specificRegular.getJudgeState());
specificRegularMy.setSpecificJudgeParam(specificRegular.getSpecificJudgeParam());
}
specificRegularList.add(specificRegularMy);
}
// 批量修改具体规则
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);
}
}
原文地址: https://www.cveoy.top/t/topic/qsct 著作权归作者所有。请勿转载和采集!