From 34c71b34b2e1e9e0e21a728e499ab82d2dc763fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Sun, 23 Feb 2025 20:51:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=80=E4=BA=9B=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/AppUserController.java | 4 +- .../admin/controller/TicketController.java | 50 ++++++++++++++++++- .../service/impl/TicketServiceImpl.java | 2 +- 3 files changed, 52 insertions(+), 4 deletions(-) diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AppUserController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AppUserController.java index ecd222df..f54f3a53 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AppUserController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AppUserController.java @@ -82,7 +82,7 @@ public class AppUserController extends ControllerBase { */ @GetMapping("getSimpleCompanys") @ApiMark(moduleName = "代理商管理", apiName = "获取公司列表") - public ApiResult> getSimpleCompanys(@Valid @RequestParam Integer userId) { + public ApiResult> getSimpleCompanys(@RequestParam(required = false) Integer userId) { return ApiResult.success(customerService.getSimpleCompanysFromAdmin(userId)); } @@ -93,7 +93,7 @@ public class AppUserController extends ControllerBase { */ @GetMapping("getSimpleAreas") @ApiMark(moduleName = "代理商管理", apiName = "获取区域列表") - public ApiResult> getSimpleAreas(@Valid @RequestParam Integer userId) { + public ApiResult> getSimpleAreas(@RequestParam(required = false) Integer userId) { return ApiResult.success(appUserService.getSimpleAreas(userId)); } diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java index f7267dd8..f6c40be4 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java @@ -126,11 +126,59 @@ public class TicketController extends ControllerBase { @ApiMark(moduleName = "工单管理", apiName = "搜索工单") public ApiResult> searchTicket(@Valid @RequestBody AdminTicketSearchRequest request) { return ApiResult.success(PageUtil.convert(ticketService.searchPage(request), d -> { - d.setEvaluate(getTicketEvaluate(d.getId())); + d.setEvaluate(getTicketEvaluateForList(d.getId())); return d; })); } + private TicketEvaluateVO getTicketEvaluateForList(Integer ticketId) { + TicketEvaluate ticketEvaluate = ticketEvaluateService.lambdaQuery().eq(TicketEvaluate::getTicketId,ticketId).one(); + if (Objects.isNull(ticketEvaluate)) { + return null; + } + String language = MultilingualUtil.getLanguage(); + TicketEvaluateAddVO vo = dictionaryItemTranslateService.getTicketEvaluateSelect(language); + vo.getServiceEvaluation().forEach(item -> { + item.setSelected(Objects.equals(item.getId(), ticketEvaluate.getServiceEvaluation())); + List selectedIds = new ArrayList<>(); + if (StrUtil.isNotBlank(ticketEvaluate.getServiceEvaluationSelect())) { + selectedIds = Arrays.stream(ticketEvaluate.getServiceEvaluationSelect().split(",")) + .map(Integer::parseInt).collect(Collectors.toList()); + } + if (CollectionUtil.isNotEmpty(selectedIds) && CollectionUtil.isNotEmpty(item.getChildren())) { + for (TicketEvaluateItemVO child : item.getChildren()) { + child.setSelected(selectedIds.contains(child.getId())); + } + } + if (CollectionUtil.isNotEmpty(item.getChildren())) { + item.getChildren().removeIf(child -> !child.getSelected()); + } + }); + vo.getServiceEvaluation().removeIf(item -> !item.getSelected()); + vo.getExperienceEvaluation().forEach(item -> { + item.setSelected(Objects.equals(item.getId(), ticketEvaluate.getProductEvaluation())); + List selectedIds = new ArrayList<>(); + if (StrUtil.isNotBlank(ticketEvaluate.getProductEvaluationSelect())) { + selectedIds = Arrays.stream(ticketEvaluate.getProductEvaluationSelect().split(",")) + .map(Integer::parseInt).collect(Collectors.toList()); + } + if (CollectionUtil.isNotEmpty(selectedIds) && CollectionUtil.isNotEmpty(item.getChildren())) { + for (TicketEvaluateItemVO child : item.getChildren()) { + child.setSelected(selectedIds.contains(child.getId())); + } + } + if (CollectionUtil.isNotEmpty(item.getChildren())) { + item.getChildren().removeIf(child -> !child.getSelected()); + } + }); + vo.getExperienceEvaluation().removeIf(item -> !item.getSelected()); + return new TicketEvaluateVO() + .setScore(ticketEvaluate.getScore()) + .setFeedback(ticketEvaluate.getFeedback()) + .setServiceEvaluation(vo.getServiceEvaluation()) + .setExperienceEvaluation(vo.getExperienceEvaluation()); + } + /** * 导出搜索工单 * @param request 请求参数 diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java index 6358a39c..1cf0c819 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java @@ -115,7 +115,7 @@ public class TicketServiceImpl extends ServiceImpl impleme VUtils.trueThrowBusinessError(!Objects.equals(ticket.getState(), TicketState.PendingProcessing.getState())).throwMessage("工单状态异常"); VUtils.trueThrowBusinessError(adminUserService.getCQM().stream() .noneMatch(u -> Objects.equals(u.getId(), AdminUserUtil.getUserId()))) - .throwMessage("你不是CQM,无权关闭工单"); + .throwMessage("你不是CQM,无权分派工单"); ticket.setUrgency(TicketUrgency.findByValue(request.getUrgency()).getState()); ticket.setQuestion(request.getQuestion()); ticket.setState(TicketState.Processing.getState());