| | |
| | | @PostMapping("/code/update") |
| | | public R update(@RequestBody Code code) { |
| | | Code origin = codeService.getById(code.getId()); |
| | | boolean cornerChanged = origin != null |
| | | && code.getCorner() != null |
| | | && !Objects.equals(origin.getCorner(), code.getCorner()); |
| | | code.setData(Utils.zeroFill(code.getData(), CommonConstant.QR_CODE_LEN)); |
| | | code.setUpdateBy(getLoginUserId()); |
| | | code.setUpdateTime(new Date()); |
| | | if (!codeService.updateById(code)) { |
| | | return R.error("Update Fail"); |
| | | } |
| | | List<Long> affectedCodeIds = Utils.singletonList(code.getId()); |
| | | affectedCodeIds.addAll(routeService.getAdjacencyNode(code.getId())); |
| | | List<Long> affectedCodeIds = new ArrayList<>(routeService.getAdjacencyNode(code.getId())); |
| | | if (!cornerChanged) { |
| | | affectedCodeIds.add(code.getId()); |
| | | } |
| | | codeService.evictCacheById(code.getId(), origin == null ? null : origin.getData()); |
| | | codeService.refreshCacheById(code.getId()); |
| | | if (!affectedCodeIds.isEmpty()) { |
| | | codeService.refreshCornerByCodeIds(affectedCodeIds); |
| | | } |
| | | return R.ok("Update Success").add(code); |
| | | } |
| | | |