<p>{&quot;@PostMapping&quot;:&quot;&quot;/updateSpecificRegulars&quot;&quot;,&quot;public&quot;:&quot; Result<Object> updateSpecificRegulars(@RequestBody Map&lt;String, Object&gt; params, HttpServletRequest request) {\n\n        //权限验证\n        String token = (String) request.getAttribute(&quot;claims_admin&quot;);\n        if (token == null || &quot;&quot;.equals(token)) {\n            throw new RuntimeException(&quot;权限不足!&quot;);\n        }\n\n        log.info(&quot;updateSpecificRegulars的请求报文:&quot; + params);\n\n        JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(params));\n        JSONArray jsonArray = jsonObject.getJSONArray(&quot;specificRegular&quot;);\n        List<SpecificRegular> specificRegulars = JSONObject.parseArray(jsonArray.toJSONString(), SpecificRegular.class);//集合(前端传递的要修改的对象集合)\n\n        String phone = (String) params.get(&quot;phone&quot;);//手机号\n        if (!StringUtils.hasText(phone)) {\n            log.error(&quot;phone为空!&quot;);\n            return new Result&lt;&gt;(ResultCode.FAIL);\n        }\n        String userCode = (String) params.get(&quot;code&quot;);//验证码\n        if (!StringUtils.hasText(userCode)) {\n            log.error(&quot;userCode为空!&quot;);\n            return new Result&lt;&gt;(ResultCode.FAIL);\n        }\n        String specificRegularUpdate_uuid = redisTemplate.opsForValue().get(&quot;specificRegularUpdate_uuid&quot; + phone);\n        String myCode = redisTemplate.opsForValue().get(&quot;sRegularUpdate_&quot; + specificRegularUpdate_uuid + phone);//缓存中验证码\n        if (!StringUtils.hasText(myCode)) {\n            log.error(&quot;myCode为空!&quot;);\n            return new Result&lt;&gt;(ResultCode.FAIL);\n        }\n        if (!userCode.equals(myCode)) {\n            log.error(&quot;验证码错误!&quot;);\n            return new Result&lt;&gt;(ResultCode.CODE_FALSE);\n        }\n\n        log.info(&quot;验证码正确!&quot;);\n        if (!CollectionUtils.isEmpty(specificRegulars)) {\n            List<SpecificRegular> specificRegularList = specificRegulars.stream()\n                    .map(specificRegular -&gt; {\n                        SpecificRegular specificRegularMy = specificRegularService.queryOneSpecificRegularByID(specificRegular.getSpecificRegularId());\n                        redisTemplateByObject.opsForValue().set(&quot;SpecificRegularId&quot; + specificRegular.getSpecificRegularId(), specificRegularMy);//缓存\n                        if (StringUtils.hasText(specificRegular.getVoiceBroadcastText()) &amp;&amp; specificRegular.getDemeritState() != 0) {\n                            log.info(&quot;语音播报文字不为空,扣分情况不为0&quot;);\n                            if (!specificRegular.getVoiceBroadcastText().equals(specificRegularMy.getVoiceBroadcastText()) || !specificRegular.getDemeritState().equals(specificRegularMy.getDemeritState())) {\n                                log.info(&quot;前端传来的参数与数据库里的参数不相等!&quot;);\n                                specificRegularMy.setJudgeState(specificRegular.getJudgeState());//评判状态\n                                specificRegularMy.setSpecificJudgeParam(specificRegular.getSpecificJudgeParam());//评判参数\n                                specificRegularMy.setVoiceBroadcastText(specificRegular.getVoiceBroadcastText());//语音播报文字\n                                specificRegularMy.setDemeritState(specificRegular.getDemeritState());//扣分情况\n                            } else {\n                                log.info(&quot;语音包不需要重新生成(语音文字和扣分情况没变)&quot;);\n                                specificRegularMy.setJudgeState(specificRegular.getJudgeState());\n                                specificRegularMy.setSpecificJudgeParam(specificRegular.getSpecificJudgeParam());\n                            }\n                        } else if (StringUtils.hasText(specificRegular.getVoiceBroadcastText()) &amp;&amp; specificRegular.getDemeritState() == 0) {\n                            log.info(&quot;语音播报文字不为空,扣分情况为0&quot;);\n                            if (!specificRegular.getVoiceBroadcastText().equals(specificRegularMy.getVoiceBroadcastText())) {\n                                log.info(&quot;前端传来的参数与数据库里的参数不相等!&quot;);\n                                specificRegularMy.setJudgeState(specificRegular.getJudgeState());//评判状态\n                                specificRegularMy.setSpecificJudgeParam(specificRegular.getSpecificJudgeParam());//评判参数\n                                specificRegularMy.setVoiceBroadcastText(specificRegular.getVoiceBroadcastText());//语音播报文字\n                                specificRegularMy.setDemeritState(specificRegular.getDemeritState());//扣分情况\n                            } else {\n                                log.info(&quot;语音文字和扣分情况没变,语音包不需要生成!&quot;);\n                                specificRegularMy.setJudgeState(specificRegular.getJudgeState());\n                                specificRegularMy.setSpecificJudgeParam(specificRegular.getSpecificJudgeParam());\n                            }\n                        } else if (!StringUtils.hasText(specificRegular.getVoiceBroadcastText()) &amp;&amp; specificRegular.getDemeritState() == 0) {\n                            log.info(&quot;语音播报文字为空,扣分情况为0,语音包不需要生成!&quot;);\n                            specificRegularMy.setJudgeState(specificRegular.getJudgeState());\n                            specificRegularMy.setSpecificJudgeParam(specificRegular.getSpecificJudgeParam());\n                        }\n                        return specificRegularMy;\n                    })\n                    .collect(Collectors.toList());\n\n            boolean batchUpdate = specificRegularService.updateBatchById(specificRegularList);//修改具体规则\n            if (batchUpdate) {\n                log.info(&quot;具体规则批量修改成功!&quot;);\n                springToGameService.reloadUpdateSpecificRegular(specificRegularList);//通知游戏端修改的具体规则\n                return new Result&lt;&gt;(ResultCode.SUCCESS);\n            } else {\n                log.error(&quot;具体规则批量修改失败!&quot;);\n                return new Result&lt;&gt;(ResultCode.FAIL);\n            }\n        } else {\n            log.error(&quot;前端传回集合为空&quot;);\n            return new Result&lt;&gt;(ResultCode.FAIL);\n        }\n    }</p>
批量修改具体规则信息

原文地址: https://www.cveoy.top/t/topic/qsbR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录