From b3ec09148fec6123b4cf90dc96b87f76bdcf7225 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Wed, 5 Feb 2025 13:14:52 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/MessageController.java | 37 ++++++++++++++---- .../admin/controller/SSEController.java | 37 ++++++++++++++++++ .../admin/controller/TicketController.java | 11 ++---- .../service/impl/EmailINotifyPushService.java | 12 +++++- .../service/impl/SSEINotifyPushService.java | 9 ++++- .../service/impl/WXINotifyPushService.java | 11 ++++++ .../cfs/controller/AreaController.java | 4 +- .../cfs/controller/MessageController.java | 32 +++++++++++----- .../common/constant/Constant.java | 13 +++++-- .../pojo/request/TicketSearchRequest.java | 10 ++--- .../common/pojo/vo/AdminMessageVO.java | 32 ++++++++++++++++ .../common/pojo/vo/AdminTicketVO.java | 24 ++++++++++++ .../common/util/LanguageUtil.java | 22 +++++++++++ .../repository/entity/Ticket.java | 10 ++++- .../repository/mapper/AdminMessageMapper.java | 2 +- .../mapper/DictionaryItemTranslateMapper.java | 2 + .../repository/mapper/TicketMapper.java | 4 +- .../service/IAdminMessageService.java | 7 ++-- .../repository/service/IAdminUserService.java | 2 + .../service/IAppMessageService.java | 5 ++- .../IDictionaryItemTranslateService.java | 2 + .../repository/service/ITicketService.java | 4 +- .../service/impl/AdminMessageServiceImpl.java | 13 ++++++- .../service/impl/AdminUserServiceImpl.java | 15 ++++++++ .../service/impl/AppAreaServiceImpl.java | 6 +-- .../service/impl/AppMessageServiceImpl.java | 8 ++++ .../DictionaryItemTranslateServiceImpl.java | 5 +++ .../service/impl/TicketServiceImpl.java | 38 +++++++++++++------ .../resources/mapper/AdminMessageMapper.xml | 8 ++-- .../mapper/DictionaryItemTranslateMapper.xml | 7 ++++ .../main/resources/mapper/TicketMapper.xml | 28 +++++++++++--- 31 files changed, 342 insertions(+), 78 deletions(-) create mode 100644 nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/SSEController.java create mode 100644 nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/util/LanguageUtil.java diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/MessageController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/MessageController.java index 3fe49b50..b415a5b7 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/MessageController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/MessageController.java @@ -1,13 +1,16 @@ package com.nflg.mobilebroken.admin.controller; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.nflg.mobilebroken.common.constant.Constant; import com.nflg.mobilebroken.common.pojo.ApiResult; import com.nflg.mobilebroken.common.pojo.PageData; import com.nflg.mobilebroken.common.pojo.request.AdminMessageSearchRequest; import com.nflg.mobilebroken.common.pojo.vo.AdminMessageVO; +import com.nflg.mobilebroken.common.util.AdminUserUtil; +import com.nflg.mobilebroken.common.util.PageUtil; +import com.nflg.mobilebroken.repository.entity.AdminUser; import com.nflg.mobilebroken.repository.service.IAdminMessageService; +import com.nflg.mobilebroken.repository.service.IAdminUserService; import com.nflg.mobilebroken.starter.annotation.MethodInfoMark; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -17,6 +20,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.validation.Valid; import java.util.List; +import java.util.stream.Collectors; /** * 消息相关接口 @@ -30,6 +34,9 @@ public class MessageController extends ControllerBase { @Resource private IAdminMessageService adminMessageService; + @Resource + private IAdminUserService adminUserService; + /** * 搜索消息 * @@ -39,11 +46,15 @@ public class MessageController extends ControllerBase { @PostMapping("searchMessages") @MethodInfoMark(value = "搜索消息", menuName = "消息管理") public ApiResult> searchMessages(@RequestBody AdminMessageSearchRequest request) { - IPage page = new Page<>(); - page.setCurrent(request.getPage()); - page.setSize(request.getPageSize()); - adminMessageService.search(Constant.USER_ID, request, page); - return ApiResult.success(page); + IPage pageData = adminMessageService.search(AdminUserUtil.getUserId(), request); + PageUtil.convert(pageData, d -> { + d.setTicketHandleBy(adminUserService.listByIds(StrUtil.split(",", d.getTicketHandleByIds())) + .stream() + .map(AdminUser::getUserName) + .collect(Collectors.toList())); + return d; + }); + return ApiResult.success(pageData); } /** @@ -57,4 +68,16 @@ public class MessageController extends ControllerBase { adminMessageService.setReaded(ids); return ApiResult.success(); } + + /** + * 设置消息未读 + * + * @param ids 消息id列表 + */ + @PostMapping("setNotRead") + @MethodInfoMark(value = "设置消息未读", menuName = "消息管理") + public ApiResult setNotRead(@Valid @RequestBody List ids) { + adminMessageService.setNotRead(ids); + return ApiResult.success(); + } } diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/SSEController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/SSEController.java new file mode 100644 index 00000000..a08cf16b --- /dev/null +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/SSEController.java @@ -0,0 +1,37 @@ +package com.nflg.mobilebroken.admin.controller; + +import com.nflg.mobilebroken.common.constant.STATE; +import com.nflg.mobilebroken.common.exception.NflgException; +import com.nflg.mobilebroken.starter.service.impl.AdminSSEManagerService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; + +import javax.annotation.Resource; +import java.io.IOException; + +@RestController +@Slf4j +@RequestMapping("/sse") +public class SSEController extends ControllerBase { + + @Resource + private AdminSSEManagerService adminSSEManagerService; + + @GetMapping(value = "connect", produces = MediaType.TEXT_EVENT_STREAM_VALUE) + public SseEmitter connect(@RequestParam String userId) { + SseEmitter sse = adminSSEManagerService.connect(userId); + try { + sse.send("您已连接"); + } catch (IOException e) { + log.error("sse发送数据出错", e); + sse.complete(); + throw new NflgException(STATE.BusinessError, "sse发送数据出错"); + } + return sse; + } +} \ No newline at end of file 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 d681f4e1..75ede310 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 @@ -1,13 +1,12 @@ package com.nflg.mobilebroken.admin.controller; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nflg.mobilebroken.common.pojo.ApiResult; import com.nflg.mobilebroken.common.pojo.PageData; import com.nflg.mobilebroken.common.pojo.request.AdminTicketSearchRequest; import com.nflg.mobilebroken.common.pojo.request.AssignmentTicketRequest; import com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO; import com.nflg.mobilebroken.common.util.EecExcelUtil; +import com.nflg.mobilebroken.common.util.PageUtil; import com.nflg.mobilebroken.repository.service.ITicketService; import com.nflg.mobilebroken.starter.annotation.MethodInfoMark; import lombok.extern.slf4j.Slf4j; @@ -43,11 +42,7 @@ public class TicketController extends ControllerBase { @PostMapping("searchTicket") @MethodInfoMark(value = "搜索工单", menuName = "工单管理") public ApiResult> searchTicket(@RequestBody AdminTicketSearchRequest request) { - IPage page = new Page<>(); - page.setCurrent(request.getPageNum()); - page.setSize(request.getPageSize()); - ticketService.search(request, page); - return ApiResult.success(page); + return ApiResult.success(PageUtil.convert(ticketService.searchPage(request), d -> d)); } /** @@ -58,7 +53,7 @@ public class TicketController extends ControllerBase { @PostMapping("exportSearchTicket") @MethodInfoMark(value = "导出搜索工单", menuName = "工单管理") public void exportSearchTicket(HttpServletResponse response, @RequestBody AdminTicketSearchRequest request) throws IOException { - List datas = ticketService.search(request); + List datas = ticketService.exportSearch(request); EecExcelUtil.export("工单", "sheet1", datas, response); } diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/service/impl/EmailINotifyPushService.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/service/impl/EmailINotifyPushService.java index 57206218..d2c4715b 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/service/impl/EmailINotifyPushService.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/service/impl/EmailINotifyPushService.java @@ -1,15 +1,18 @@ package com.nflg.mobilebroken.admin.service.impl; import cn.hutool.core.util.StrUtil; +import com.nflg.mobilebroken.common.constant.Constant; import com.nflg.mobilebroken.common.constant.STATE; import com.nflg.mobilebroken.common.exception.NflgException; import com.nflg.mobilebroken.common.pojo.dto.UserDTO; import com.nflg.mobilebroken.starter.service.EmailService; import com.nflg.mobilebroken.starter.service.INotifyPushService; import lombok.extern.slf4j.Slf4j; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Objects; @Service @Slf4j @@ -18,6 +21,9 @@ public class EmailINotifyPushService implements INotifyPushService { @Resource private EmailService emailService; + @Resource + private RedisTemplate redisTemplate; + @Override public void push(UserDTO user, String subject, String content) { try { @@ -30,6 +36,10 @@ public class EmailINotifyPushService implements INotifyPushService { @Override public boolean check(UserDTO user) { - return StrUtil.isNotBlank(user.getEmail()); + Object value = redisTemplate.opsForHash().get("message:config:" + user.getId(), Constant.REDIS_KEY_MESSAGECONFIG_EMAIL); + if (Objects.isNull(value) || (boolean) value) { + return StrUtil.isNotBlank(user.getEmail()); + } + return false; } } diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/service/impl/SSEINotifyPushService.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/service/impl/SSEINotifyPushService.java index 574994a3..c8bdfd09 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/service/impl/SSEINotifyPushService.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/service/impl/SSEINotifyPushService.java @@ -1,14 +1,17 @@ package com.nflg.mobilebroken.admin.service.impl; +import com.nflg.mobilebroken.common.constant.Constant; import com.nflg.mobilebroken.common.pojo.dto.UserDTO; import com.nflg.mobilebroken.starter.service.INotifyPushService; import com.nflg.mobilebroken.starter.service.SSEManagerService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; +import java.util.Objects; @Service @Slf4j @@ -18,6 +21,9 @@ public class SSEINotifyPushService implements INotifyPushService { @Qualifier("APPSSEManagerService") private SSEManagerService sseManagerService; + @Resource + private RedisTemplate redisTemplate; + @Override public void push(UserDTO user, String subject, String content) { try { @@ -29,6 +35,7 @@ public class SSEINotifyPushService implements INotifyPushService { @Override public boolean check(UserDTO user) { - return true; + Object value = redisTemplate.opsForHash().get("message:config:" + user.getId(), Constant.REDIS_KEY_MESSAGECONFIG_APP); + return Objects.isNull(value) || (boolean) value; } } diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/service/impl/WXINotifyPushService.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/service/impl/WXINotifyPushService.java index 34dbb8d2..81de50b5 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/service/impl/WXINotifyPushService.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/service/impl/WXINotifyPushService.java @@ -1,14 +1,18 @@ package com.nflg.mobilebroken.admin.service.impl; +import cn.hutool.core.util.StrUtil; +import com.nflg.mobilebroken.common.constant.Constant; import com.nflg.mobilebroken.common.pojo.dto.UserDTO; import com.nflg.mobilebroken.starter.service.INotifyPushService; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.config.WxMpConfigStorage; import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Objects; @Service @Slf4j @@ -23,6 +27,9 @@ public class WXINotifyPushService implements INotifyPushService { @Resource private WxMpConfigStorage wxMpConfigStorage; + @Resource + private RedisTemplate redisTemplate; + @Override public void push(UserDTO user,String subject, String content) { //TODO @@ -42,6 +49,10 @@ public class WXINotifyPushService implements INotifyPushService { @Override public boolean check(UserDTO user) { + Object value = redisTemplate.opsForHash().get("message:config:" + user.getId(), Constant.REDIS_KEY_MESSAGECONFIG_WX); + if (Objects.isNull(value) || (boolean) value) { + return StrUtil.isNotBlank(user.getWxOpenId()); + } return false; } } diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/AreaController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/AreaController.java index b35873fb..2a3fd66c 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/AreaController.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/AreaController.java @@ -2,7 +2,6 @@ package com.nflg.mobilebroken.cfs.controller; import cn.hutool.core.convert.Convert; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.nflg.mobilebroken.common.constant.Constant; import com.nflg.mobilebroken.common.pojo.ApiResult; import com.nflg.mobilebroken.common.pojo.PageData; import com.nflg.mobilebroken.common.pojo.request.AreaSaveRequest; @@ -10,6 +9,7 @@ import com.nflg.mobilebroken.common.pojo.request.AreaSearchRequest; import com.nflg.mobilebroken.common.pojo.request.EnableRequest; import com.nflg.mobilebroken.common.pojo.vo.AreaSimpleVO; import com.nflg.mobilebroken.common.pojo.vo.AreaVO; +import com.nflg.mobilebroken.common.util.AppUserUtil; import com.nflg.mobilebroken.repository.entity.AppArea; import com.nflg.mobilebroken.repository.service.IAppAreaService; import org.springframework.web.bind.annotation.*; @@ -84,7 +84,7 @@ public class AreaController extends ControllerBase { AppArea area=new AppArea() .setId(request.getId()) .setEnable(request.getEnable()) - .setUpdateBy(Constant.USER_NAME) + .setUpdateBy(AppUserUtil.getUserName()) .setUpdateTime(LocalDateTime.now()); return ApiResult.success(appAreaService.updateById(area)); } diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/MessageController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/MessageController.java index b2113d9c..16b49614 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/MessageController.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/MessageController.java @@ -9,6 +9,7 @@ import com.nflg.mobilebroken.common.pojo.request.AppMessageSearchRequest; import com.nflg.mobilebroken.common.pojo.request.MessageConfigRequest; import com.nflg.mobilebroken.common.pojo.vo.AppMessageVO; import com.nflg.mobilebroken.common.pojo.vo.MessageConfigVO; +import com.nflg.mobilebroken.common.util.AppUserUtil; import com.nflg.mobilebroken.repository.service.IAppMessageService; import org.springframework.data.redis.core.HashOperations; import org.springframework.data.redis.core.RedisTemplate; @@ -45,7 +46,7 @@ public class MessageController extends ControllerBase { IPage page = new Page<>(); page.setCurrent(request.getPage()); page.setSize(request.getPageSize()); - appMessageService.search(Constant.USER_ID, request.getTitle(), page); + appMessageService.search(AppUserUtil.getUserId(), request.getTitle(), page); return ApiResult.success(page); } @@ -60,6 +61,17 @@ public class MessageController extends ControllerBase { return ApiResult.success(); } + /** + * 设置消息未读 + * + * @param ids 消息id列表 + */ + @PostMapping("setNotRead") + public ApiResult setNotRead(@Valid @RequestBody List ids) { + appMessageService.setNotRead(ids); + return ApiResult.success(); + } + /** * 获取未读消息 * @param num 获取未读消息的数量 @@ -70,7 +82,7 @@ public class MessageController extends ControllerBase { IPage page = new Page<>(); page.setCurrent(1); page.setSize(num); - appMessageService.getNotReadMessage(Constant.USER_ID, num, page); + appMessageService.getNotReadMessage(AppUserUtil.getUserId(), num, page); return ApiResult.success(page); } @@ -81,11 +93,11 @@ public class MessageController extends ControllerBase { @GetMapping("getConfig") public ApiResult getConfig(){ HashOperations hashOps = redisTemplate.opsForHash(); - Map maps=hashOps.entries("message:config:" + Constant.USER_ID); + Map maps = hashOps.entries("message:config:" + AppUserUtil.getUserId()); return ApiResult.success(new MessageConfigVO() - .setAppNotifyEnabled((Boolean) maps.getOrDefault("appNotifyEnabled",true)) - .setEmailNotifyEnabled((Boolean) maps.getOrDefault("emailNotifyEnabled",true)) - .setWxNotifyEnabled((Boolean) maps.getOrDefault("wxNotifyEnabled",true)) + .setAppNotifyEnabled((Boolean) maps.getOrDefault(Constant.REDIS_KEY_MESSAGECONFIG_APP, true)) + .setEmailNotifyEnabled((Boolean) maps.getOrDefault(Constant.REDIS_KEY_MESSAGECONFIG_EMAIL, true)) + .setWxNotifyEnabled((Boolean) maps.getOrDefault(Constant.REDIS_KEY_MESSAGECONFIG_WX, true)) ); } @@ -96,11 +108,11 @@ public class MessageController extends ControllerBase { @PostMapping("setConfig") public ApiResult setConfig(@Valid @RequestBody MessageConfigRequest request) { Map maps = new HashMap<>(); - maps.put("wxNotifyEnabled", request.isWxNotifyEnabled()); - maps.put("emailNotifyEnabled", request.isEmailNotifyEnabled()); - maps.put("appNotifyEnabled", request.isAppNotifyEnabled()); + maps.put(Constant.REDIS_KEY_MESSAGECONFIG_WX, request.isWxNotifyEnabled()); + maps.put(Constant.REDIS_KEY_MESSAGECONFIG_EMAIL, request.isEmailNotifyEnabled()); + maps.put(Constant.REDIS_KEY_MESSAGECONFIG_APP, request.isAppNotifyEnabled()); HashOperations operations = redisTemplate.opsForHash(); - operations.putAll("message:config:" + Constant.USER_ID, maps); + operations.putAll("message:config:" + AppUserUtil.getUserId(), maps); return ApiResult.success(); } } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/constant/Constant.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/constant/Constant.java index 41643a19..52deb74a 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/constant/Constant.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/constant/Constant.java @@ -2,13 +2,18 @@ package com.nflg.mobilebroken.common.constant; public class Constant { - public static final String USER_NAME="admin"; - public static final Integer USER_ID=1; - //字典 类型 用户职位 public static final String DICTIONARY_TYPE_TITLE="UserTitle"; - public static final String DICTIONARY_TYPE_LANGUAGE="Language"; + public static final String DICTIONARY_TYPE_TITLE_CQM = "CQM"; public static final String REDIS_KEY_USER_UPDATE_KAPTCHA = "kaptcha:userupdate:{}"; + + public static final String DICTIONARY_TYPE_SYSTEMERROR_CQMNOTCONFIG = "CQMNotConfig"; + + public static final String REDIS_KEY_MESSAGECONFIG_WX = "wxNotifyEnabled"; + + public static final String REDIS_KEY_MESSAGECONFIG_EMAIL = "emailNotifyEnabled"; + + public static final String REDIS_KEY_MESSAGECONFIG_APP = "appNotifyEnabled"; } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/TicketSearchRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/TicketSearchRequest.java index ad184dbb..473dfac2 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/TicketSearchRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/TicketSearchRequest.java @@ -1,12 +1,14 @@ package com.nflg.mobilebroken.common.pojo.request; import lombok.Data; +import lombok.EqualsAndHashCode; import javax.validation.constraints.NotNull; import java.time.LocalDateTime; +@EqualsAndHashCode(callSuper = false) @Data -public class TicketSearchRequest { +public class TicketSearchRequest extends PageRequest { //搜索类型,1: 我的工单,2: 我的关注,3: 区域工单 @NotNull(message = "搜索类型不能为空") @@ -32,10 +34,4 @@ public class TicketSearchRequest { //结束日期 private LocalDateTime endTime; - - //页码 - private Integer pageNum=1; - - //每页数量 - private Integer pageSize=10; } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminMessageVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminMessageVO.java index db56d854..bef38940 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminMessageVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminMessageVO.java @@ -1,14 +1,28 @@ package com.nflg.mobilebroken.common.pojo.vo; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.nflg.mobilebroken.common.constant.MessageType; import lombok.Data; import lombok.experimental.Accessors; +import java.time.LocalDateTime; +import java.util.List; + @Data @Accessors(chain = true) public class AdminMessageVO { + //任务id + private Integer ticketId; + + //任务编号 + private String ticketNo; + + //任务事项 + private String content; + //任务类别 + @JsonIgnore private Integer type; //任务类别名称 @@ -17,4 +31,22 @@ public class AdminMessageVO { public String getTypeName() { return MessageType.findByValue(type).getDescription(); } + + //消息时间 + private LocalDateTime createTime; + + //提交人 + private String createUserName; + + //任务提交时间 + private LocalDateTime ticketCreateTime; + + @JsonIgnore + private String ticketHandleByIds; + + //待处理人 + private List ticketHandleBy; + + //是否已读 + private boolean isRead; } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminTicketVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminTicketVO.java index 4b1f7224..2291f72a 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminTicketVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminTicketVO.java @@ -34,77 +34,101 @@ public class AdminTicketVO { //解决状态 @ExcelColumn("解决状态") private String stateDesc; + //紧急程度 @IgnoreExport @JsonIgnore private Integer urgency; + //紧急程度 @ExcelColumn("紧急程度") private String urgencyDesc; + //问题部位 @ExcelColumn("问题部位") private String component; + //问题类型 @ExcelColumn("问题类型") private String question; + //解决方案 @ExcelColumn("解决方案") private String solution; + //区域名称 @ExcelColumn("区域") private String areaName; + //代理商名称 @ExcelColumn("代理商") private String companyName; + //客户 @ExcelColumn("客户") private String createUserName; + //设备编号 @ExcelColumn("设备编号") private String deviceNo; + //设备类型 @ExcelColumn("设备类型") private String deviceType; + //设备机型 @ExcelColumn("设备机型") private String equipmentModel; + //发货日期 @ExcelColumn("发货日期") private String shipmentDate; + //使用时长 @ExcelColumn("使用时长(小时)") private Integer useTime; + //质保状态 @ExcelColumn("质保状态") private String warrantyStatusDesc; + //提交时间 @ExcelColumn("提交时间") private LocalDateTime createTime; + //提交人 @ExcelColumn("提交人") private String createBy; + //所属CQM @ExcelColumn("所属CQM") private String cqm; + //处理人 @JsonIgnore @IgnoreExport private String handle; + //处理人 @ExcelColumn("处理人") private List handleBy; + //当前处理人 @ExcelColumn("当前处理人") private List currentProcessor; + //处理完成时间 @ExcelColumn("处理完成时间") private LocalDateTime solveTime; + //关闭时间 @ExcelColumn("关闭时间") private LocalDateTime closeTime; + //是否已关注 @IgnoreExport private boolean followed; + @ExcelColumn("关注") private String followedDesc; diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/util/LanguageUtil.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/util/LanguageUtil.java new file mode 100644 index 00000000..7a7ad05f --- /dev/null +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/util/LanguageUtil.java @@ -0,0 +1,22 @@ +package com.nflg.mobilebroken.common.util; + +public class LanguageUtil { + + private static final ThreadLocal threadLocal = new ThreadLocal<>(); + + public static String getLanguage() { + String language = threadLocal.get(); + if (language == null) { + language = "cn"; + } + return language; + } + + public static void setLanguage(String language) { + threadLocal.set(language); + } + + public static void clear() { + threadLocal.remove(); + } +} diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/Ticket.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/Ticket.java index 6f6535d2..d599de80 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/Ticket.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/Ticket.java @@ -2,12 +2,13 @@ package com.nflg.mobilebroken.repository.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; -import java.io.Serializable; -import java.time.LocalDateTime; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; +import java.io.Serializable; +import java.time.LocalDateTime; + /** *

* 工单 @@ -76,6 +77,11 @@ public class Ticket implements Serializable { */ private LocalDateTime createTime; + /** + * 所属CQM + */ + private Integer cqm; + /** * 紧急程度,0:非紧急;1:普通;2:紧急 */ diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdminMessageMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdminMessageMapper.java index b8006ffb..6acc3601 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdminMessageMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdminMessageMapper.java @@ -16,5 +16,5 @@ import com.nflg.mobilebroken.repository.entity.AdminMessage; */ public interface AdminMessageMapper extends BaseMapper { - void search(Integer userId, AdminMessageSearchRequest request, IPage page); + IPage search(Integer userId, AdminMessageSearchRequest request, IPage page); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DictionaryItemTranslateMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DictionaryItemTranslateMapper.java index 768b9661..042ac509 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DictionaryItemTranslateMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DictionaryItemTranslateMapper.java @@ -20,4 +20,6 @@ public interface DictionaryItemTranslateMapper extends BaseMapper getListByDictionaryItemId(Integer id); List getTitles(String language); + + String getErrorMsg(String language, String errorCode); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/TicketMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/TicketMapper.java index 5efd605f..063c55b4 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/TicketMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/TicketMapper.java @@ -26,7 +26,7 @@ public interface TicketMapper extends BaseMapper { IPage searchArea(IPage page, TicketSearchRequest request, List companyIds); - void searchFromAdmin(AdminTicketSearchRequest request, IPage page); + IPage searchFromAdmin(AdminTicketSearchRequest request, IPage page); void completeTicket(List ids, Integer userId); @@ -34,7 +34,7 @@ public interface TicketMapper extends BaseMapper { List searchAllFromAdmin(AdminTicketSearchRequest request); - void searchFromAdminAndFollow(AdminTicketSearchRequest request, Integer userId, IPage page); + IPage searchFromAdminAndFollow(AdminTicketSearchRequest request, Integer userId, IPage page); List searchAllFromAdminAndFollow(AdminTicketSearchRequest request, Integer userId); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminMessageService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminMessageService.java index c284d8b5..64e7f88f 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminMessageService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminMessageService.java @@ -6,7 +6,6 @@ import com.nflg.mobilebroken.common.pojo.request.AdminMessageSearchRequest; import com.nflg.mobilebroken.common.pojo.vo.AdminMessageVO; import com.nflg.mobilebroken.repository.entity.AdminMessage; -import javax.validation.Valid; import java.util.List; /** @@ -19,7 +18,9 @@ import java.util.List; */ public interface IAdminMessageService extends IService { - void search(Integer userId, AdminMessageSearchRequest request, IPage page); + IPage search(Integer userId, AdminMessageSearchRequest request); - void setReaded(@Valid List ids); + void setReaded(List ids); + + void setNotRead(List ids); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminUserService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminUserService.java index 4f299cf6..37f1cff3 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminUserService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminUserService.java @@ -28,4 +28,6 @@ public interface IAdminUserService extends IService { void enable(EnableAccountRequest request); PageData search(SearchAccountRequest request); + + AdminUser getCQM(); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAppMessageService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAppMessageService.java index bf81caef..ddb0a9bc 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAppMessageService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAppMessageService.java @@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.nflg.mobilebroken.common.pojo.vo.AppMessageVO; import com.nflg.mobilebroken.repository.entity.AppMessage; -import javax.validation.Valid; import java.util.List; /** @@ -22,5 +21,7 @@ public interface IAppMessageService extends IService { void search(Integer userId, String title, IPage page); - void setReaded(@Valid List ids); + void setReaded(List ids); + + void setNotRead(List ids); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IDictionaryItemTranslateService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IDictionaryItemTranslateService.java index 685234a4..9fc93cef 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IDictionaryItemTranslateService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IDictionaryItemTranslateService.java @@ -25,4 +25,6 @@ public interface IDictionaryItemTranslateService extends IService getTitles(String language); + + String getErrorMsg(String language, String errorCode); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketService.java index 48d1558b..d4a43ecf 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketService.java @@ -27,7 +27,7 @@ public interface ITicketService extends IService { IPage search(TicketSearchRequest request, UserDTO user); - void search(AdminTicketSearchRequest request, IPage page); + IPage searchPage(AdminTicketSearchRequest request); void assignmentTicket(AssignmentTicketRequest request); @@ -35,7 +35,7 @@ public interface ITicketService extends IService { void closeTicket(List ids); - List search(AdminTicketSearchRequest request); + List exportSearch(AdminTicketSearchRequest request); List getEmergencys(int days); diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminMessageServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminMessageServiceImpl.java index b5c0ea53..fc23f36a 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminMessageServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminMessageServiceImpl.java @@ -1,6 +1,7 @@ package com.nflg.mobilebroken.repository.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nflg.mobilebroken.common.pojo.request.AdminMessageSearchRequest; import com.nflg.mobilebroken.common.pojo.vo.AdminMessageVO; @@ -23,8 +24,8 @@ import java.util.List; public class AdminMessageServiceImpl extends ServiceImpl implements IAdminMessageService { @Override - public void search(Integer userId, AdminMessageSearchRequest request, IPage page) { - baseMapper.search(userId, request, page); + public IPage search(Integer userId, AdminMessageSearchRequest request) { + return baseMapper.search(userId, request, new Page<>(request.getPage(), request.getPageSize())); } @Override @@ -34,4 +35,12 @@ public class AdminMessageServiceImpl extends ServiceImpl ids) { + lambdaUpdate() + .set(AdminMessage::getIsRead, false) + .in(AdminMessage::getId, ids) + .update(); + } } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminUserServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminUserServiceImpl.java index 3170da54..f93bab46 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminUserServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminUserServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nflg.mobilebroken.common.constant.Constant; import com.nflg.mobilebroken.common.pojo.PageData; import com.nflg.mobilebroken.common.pojo.request.AccountAddRequest; import com.nflg.mobilebroken.common.pojo.request.AccountUpdateRequest; @@ -51,6 +52,9 @@ public class AdminUserServiceImpl extends ServiceImpl impl @Override public boolean saveOrUpdate(AppArea entity) { if (Objects.isNull(entity.getId()) || entity.getId()<=0){ - entity.setCreateBy(Constant.USER_NAME); + entity.setCreateBy(AppUserUtil.getUserName()); entity.setCreateTime(LocalDateTime.now()); return save(entity); }else { - entity.setUpdateBy(Constant.USER_NAME); + entity.setUpdateBy(AppUserUtil.getUserName()); entity.setUpdateTime(LocalDateTime.now()); return updateById(entity); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppMessageServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppMessageServiceImpl.java index b4cd196d..72ac98ed 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppMessageServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppMessageServiceImpl.java @@ -38,4 +38,12 @@ public class AppMessageServiceImpl extends ServiceImpl ids) { + lambdaUpdate() + .set(AppMessage::getIsRead, false) + .in(AppMessage::getId, ids) + .update(); + } } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DictionaryItemTranslateServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DictionaryItemTranslateServiceImpl.java index 1f226684..4319064c 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DictionaryItemTranslateServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DictionaryItemTranslateServiceImpl.java @@ -86,4 +86,9 @@ public class DictionaryItemTranslateServiceImpl extends ServiceImpl getTitles(String language) { return baseMapper.getTitles(language); } + + @Override + public String getErrorMsg(String language, String errorCode) { + return baseMapper.getErrorMsg(language, errorCode); + } } 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 573b8428..92a5b8e1 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 @@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nflg.mobilebroken.common.constant.Constant; import com.nflg.mobilebroken.common.constant.TicketState; import com.nflg.mobilebroken.common.constant.TicketUrgency; import com.nflg.mobilebroken.common.pojo.dto.UserDTO; @@ -14,13 +15,18 @@ import com.nflg.mobilebroken.common.pojo.request.TicketSearchRequest; import com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO; import com.nflg.mobilebroken.common.pojo.vo.TicketVO; import com.nflg.mobilebroken.common.util.AdminUserUtil; +import com.nflg.mobilebroken.common.util.LanguageUtil; import com.nflg.mobilebroken.common.util.TicketUtl; import com.nflg.mobilebroken.common.util.VUtils; +import com.nflg.mobilebroken.repository.entity.AdminUser; import com.nflg.mobilebroken.repository.entity.Ticket; import com.nflg.mobilebroken.repository.mapper.TicketMapper; +import com.nflg.mobilebroken.repository.service.IAdminUserService; +import com.nflg.mobilebroken.repository.service.IDictionaryItemTranslateService; import com.nflg.mobilebroken.repository.service.ITicketService; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.List; import java.util.Objects; @@ -36,14 +42,23 @@ import java.util.Objects; @Service public class TicketServiceImpl extends ServiceImpl implements ITicketService { + @Resource + private IAdminUserService adminUserService; + + @Resource + private IDictionaryItemTranslateService dictionaryItemTranslateService; + @Override public void add(TicketAddRequest request,Integer userId) { + AdminUser cqmUser = adminUserService.getCQM(); + VUtils.trueThrowBusinessError(Objects.isNull(cqmUser)) + .throwMessage(dictionaryItemTranslateService.getErrorMsg(LanguageUtil.getLanguage(), Constant.DICTIONARY_TYPE_SYSTEMERROR_CQMNOTCONFIG)); Ticket lastTicket=lambdaQuery() .ge(Ticket::getCreateTime, LocalDateTime.now().toLocalDate()) .orderByDesc(Ticket::getId) .last("LIMIT 1") .one(); - String no=lastTicket==null? TicketUtl.getNextNo(null):TicketUtl.getNextNo(lastTicket.getNo()); + String no = lastTicket == null ? TicketUtl.getNextNo(null) : TicketUtl.getNextNo(lastTicket.getNo()); Ticket ticket = new Ticket() .setNo(no) .setDeviceNo(request.getDeviceNo()) @@ -51,31 +66,32 @@ public class TicketServiceImpl extends ServiceImpl impleme .setUseTime(request.getUseTime()) .setTitle(request.getTitle()) .setDescription(request.getDescription()) - .setAttachments(StrUtil.join(",",request.getAttachments())) - .setState(TicketState.PendingProcessing.getState().byteValue()) + .setAttachments(StrUtil.join(",", request.getAttachments())) + .setState(TicketState.PendingProcessing.getState()) .setUserId(userId) - .setCreateTime(LocalDateTime.now()); + .setCreateTime(LocalDateTime.now()) + .setCqm(cqmUser.getId()); save(ticket); } @Override public IPage search(TicketSearchRequest request, UserDTO user) { if (request.getType()==1){ - return baseMapper.searchMy(new Page<>(request.getPageNum(), request.getPageSize()), request, user.getId()); + return baseMapper.searchMy(new Page<>(request.getPage(), request.getPageSize()), request, user.getId()); }else if (request.getType()==2){ - return baseMapper.searchFollow(new Page<>(request.getPageNum(), request.getPageSize()), request, user.getId()); + return baseMapper.searchFollow(new Page<>(request.getPage(), request.getPageSize()), request, user.getId()); }else if (request.getType()==3) { - return baseMapper.searchArea(new Page<>(request.getPageNum(), request.getPageSize()), request, user.getCompanyIds()); + return baseMapper.searchArea(new Page<>(request.getPage(), request.getPageSize()), request, user.getCompanyIds()); } return null; } @Override - public void search(AdminTicketSearchRequest request, IPage page) { + public IPage searchPage(AdminTicketSearchRequest request) { if (request.getType() == 2) { - baseMapper.searchFromAdminAndFollow(request, AdminUserUtil.getUserId(), page); + return baseMapper.searchFromAdminAndFollow(request, AdminUserUtil.getUserId(), new Page<>(request.getPage(), request.getPageSize())); } else { - baseMapper.searchFromAdmin(request, page); + return baseMapper.searchFromAdmin(request, new Page<>(request.getPage(), request.getPageSize())); } } @@ -105,7 +121,7 @@ public class TicketServiceImpl extends ServiceImpl impleme } @Override - public List search(AdminTicketSearchRequest request) { + public List exportSearch(AdminTicketSearchRequest request) { if (request.getType() == 2) { return baseMapper.searchAllFromAdminAndFollow(request, AdminUserUtil.getUserId()); } else { diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/AdminMessageMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/AdminMessageMapper.xml index ab67d820..01c5283a 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/AdminMessageMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/AdminMessageMapper.xml @@ -2,10 +2,10 @@ - + SELECT t.id AS 'ticketId',t.`no` AS 'ticketNo',m.content,m.type,m.create_time AS 'createTime', + u.`name` AS 'createUserName',t.create_time AS 'ticketCreateTime',t.handle AS 'ticketHandleByIds', + m.is_read AS 'isRead' FROM admin_message m INNER JOIN ticket t ON m.ticket_id=t.id INNER JOIN admin_user u ON t.user_id=u.id diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/DictionaryItemTranslateMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/DictionaryItemTranslateMapper.xml index 98d451e8..417069c2 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/DictionaryItemTranslateMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/DictionaryItemTranslateMapper.xml @@ -19,4 +19,11 @@ LEFT JOIN dictionary_item_translate dit ON di.id=dit.dictionary_item_id WHERE d.`code`=#{Constant.DICTIONARY_TYPE_TITLE} AND dit.language_code=#{language} + + diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml index 29c4f8eb..0157f10a 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml @@ -95,12 +95,16 @@ - + SELECT t.id,t.`no`,t.title,t.state,t.urgency,t.component,t.question,t.solution,a.`name` AS 'areaName' + ,c.agency_company_name AS 'companyName',u.`name` AS 'createUserName',t.device_no AS 'deviceNo',t.use_time AS 'useTime' + ,t.create_time AS 'createTime',t.handle,t.solve_time AS 'solveTime',di.name AS 'warrantyStatusDesc' FROM ticket t LEFT JOIN app_user u ON t.user_id=u.id LEFT JOIN t_base_customer c ON u.company_id=c.id LEFT JOIN app_area a ON u.area_id=a.id + LEFT JOIN device d ON t.device_no=d.device_no AND d.data_valid_state=1 + LEFT JOIN dictionary_item di ON d.warranty_state=di.id @@ -123,31 +127,43 @@ - + SELECT t.id,t.`no`,t.title,t.state,t.urgency,t.component,t.question,t.solution,a.`name` AS 'areaName' + ,c.agency_company_name AS 'companyName',u.`name` AS 'createUserName',t.device_no AS 'deviceNo',t.use_time AS 'useTime' + ,t.create_time AS 'createTime',t.handle,t.solve_time AS 'solveTime',di.name AS 'warrantyStatusDesc' FROM ticket t LEFT JOIN app_user u ON t.user_id=u.id LEFT JOIN t_base_customer c ON u.company_id=c.id LEFT JOIN app_area a ON u.area_id=a.id INNER JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} + LEFT JOIN device d ON t.device_no=d.device_no AND d.data_valid_state=1 + LEFT JOIN dictionary_item di ON d.warranty_state=di.id