From 0bbf3943ccfef6238e425bc27d9359345e0b83ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 24 Jun 2025 14:43:21 +0800 Subject: [PATCH 1/5] =?UTF-8?q?feat:=20cfs=E6=89=93=E5=8C=85=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E7=AC=AC=E4=B8=89=E6=96=B9=E5=8C=85=E6=94=BE=E5=88=B0?= =?UTF-8?q?lib=E6=96=87=E4=BB=B6=E5=A4=B9=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nflg-mobilebroken-cfs-app/pom.xml | 52 ++++++++++++++++++++++++++++++- pom.xml | 18 +++++++++++ 2 files changed, 69 insertions(+), 1 deletion(-) diff --git a/nflg-mobilebroken-cfs-app/pom.xml b/nflg-mobilebroken-cfs-app/pom.xml index 970178db..2caff752 100644 --- a/nflg-mobilebroken-cfs-app/pom.xml +++ b/nflg-mobilebroken-cfs-app/pom.xml @@ -84,10 +84,60 @@ org.springframework.boot spring-boot-maven-plugin + + true + org.apache.maven.plugins - maven-surefire-plugin + maven-dependency-plugin + + + copy-dependencies + package + + copy-dependencies + + + ${project.build.directory}/lib + ${project.groupId} + runtime + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + + true + lib/ + com.nflg.mobilebroken.cfs.CfsApplication + + + + + + org.apache.maven.plugins + maven-shade-plugin + + + package + + shade + + + + + ${project.groupId}:* + + + false + + + diff --git a/pom.xml b/pom.xml index 122ac1db..7ac9691d 100644 --- a/pom.xml +++ b/pom.xml @@ -204,6 +204,24 @@ org.springframework.boot spring-boot-maven-plugin 2.6.4 + + true + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.8.1 + + + org.apache.maven.plugins + maven-jar-plugin + 3.4.2 + + + org.apache.maven.plugins + maven-shade-plugin + 3.6.0 org.apache.maven.plugins From 6badf25305d36a6db064cb8fedaa29bd36b97f71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 24 Jun 2025 17:29:25 +0800 Subject: [PATCH 2/5] =?UTF-8?q?feat:=20cfs=E6=89=93=E5=8C=85=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E7=AC=AC=E4=B8=89=E6=96=B9=E5=8C=85=E6=94=BE=E5=88=B0?= =?UTF-8?q?lib=E6=96=87=E4=BB=B6=E5=A4=B9=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nflg-mobilebroken-admin/pom.xml | 62 +++++++++++++++++++++++++++------ 1 file changed, 52 insertions(+), 10 deletions(-) diff --git a/nflg-mobilebroken-admin/pom.xml b/nflg-mobilebroken-admin/pom.xml index 933a0681..5a18c8dd 100644 --- a/nflg-mobilebroken-admin/pom.xml +++ b/nflg-mobilebroken-admin/pom.xml @@ -148,19 +148,61 @@ org.springframework.boot spring-boot-maven-plugin - - - org.apache.maven.plugins - maven-surefire-plugin - - - org.apache.maven.plugins - maven-compiler-plugin - 11 - 11 + true + + org.apache.maven.plugins + maven-dependency-plugin + + + copy-dependencies + package + + copy-dependencies + + + ${project.build.directory}/lib + ${project.groupId} + runtime + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + + true + lib/ + com.nflg.mobilebroken.admin.AdminApplication + + + + + + org.apache.maven.plugins + maven-shade-plugin + + + package + + shade + + + + + ${project.groupId}:* + + + false + + + + From 79c970e8efc1190a158f8511a127d962c7e6bde8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Thu, 26 Jun 2025 17:52:43 +0800 Subject: [PATCH 3/5] =?UTF-8?q?feat:=20bug-384=20=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=AB=AF=E9=9C=80=E8=A6=81=E6=94=AF=E6=8C=81=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=AB=AF=E7=94=A8=E6=88=B7=E6=B7=BB=E5=8A=A0=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E5=92=8C=E5=90=8E=E7=BB=AD=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/TicketController.java | 16 +++---- .../admin/event/TicketCompleteEvent.java | 1 + .../admin/event/TicketReplyEvent.java | 1 + .../cfs/controller/MessageController.java | 10 ++--- .../cfs/controller/TicketController.java | 45 ++++++++++++------- .../cfs/event/TicketCreateEvent.java | 12 ++++- .../common/constant/Constant.java | 2 +- .../mobilebroken/common/pojo/dto/UserDTO.java | 3 ++ .../pojo/request/AreaSearchRequest.java | 2 + .../mobilebroken/common/util/AppUserUtil.java | 1 + .../repository/entity/AppMessage.java | 5 +++ .../repository/entity/Ticket.java | 5 +++ .../repository/entity/TicketFavorites.java | 5 +++ .../repository/mapper/AppMessageMapper.java | 4 +- .../repository/mapper/TicketMapper.java | 6 +-- .../service/IAppMessageService.java | 10 ++--- .../service/ITicketFavoritesService.java | 12 ++--- .../service/ITicketFollowService.java | 8 ++-- .../repository/service/ITicketService.java | 2 +- .../service/impl/AppAreaServiceImpl.java | 4 ++ .../service/impl/AppMessageServiceImpl.java | 30 +++++++------ .../service/impl/DeviceServiceImpl.java | 13 +++--- .../impl/TicketFavoritesServiceImpl.java | 24 +++++----- .../service/impl/TicketFollowServiceImpl.java | 27 ++++++----- .../service/impl/TicketServiceImpl.java | 13 +++--- .../resources/mapper/AppMessageMapper.xml | 4 +- .../main/resources/mapper/DeviceMapper.xml | 11 +++-- .../main/resources/mapper/TicketMapper.xml | 10 ++--- 28 files changed, 173 insertions(+), 113 deletions(-) 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 c9089c7e..c270990a 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 @@ -154,7 +154,7 @@ public class TicketController extends ControllerBase { @GetMapping("getFavorites") @ApiMark(moduleName = "工单管理", apiName = "获取收藏夹",isPublic = true) public ApiResult getFavorites(@RequestParam(defaultValue ="0") Integer id){ - return ApiResult.success(ticketFavoritesService.getList(AdminUserUtil.getUserId(),id)); + return ApiResult.success(ticketFavoritesService.getList(AdminUserUtil.getUserId(),AppUserUtil.getFrom(),id)); } /** @@ -165,7 +165,7 @@ public class TicketController extends ControllerBase { @PostMapping("addFavorites") @ApiMark(moduleName = "工单管理", apiName = "添加收藏夹",isPublic = true) public ApiResult addFavorites(@Valid @RequestBody AdminFavoritesRequest request){ - ticketFavoritesService.addFavorites(request,AdminUserUtil.getUserId()); + ticketFavoritesService.addFavorites(request,AdminUserUtil.getUserId(),AppUserUtil.getFrom()); return ApiResult.success(); } @@ -175,7 +175,7 @@ public class TicketController extends ControllerBase { */ @PostMapping("updateFavorites") public ApiResult updateFavorites(@Valid @RequestBody FavoritesUpdateRequest request){ - ticketFavoritesService.updateFavorites(request,AdminUserUtil.getUserId()); + ticketFavoritesService.updateFavorites(request,AdminUserUtil.getUserId(),AppUserUtil.getFrom()); return ApiResult.success(); } @@ -187,7 +187,7 @@ public class TicketController extends ControllerBase { @PostMapping("deleteFavorites") @ApiMark(moduleName = "工单管理", apiName = "删除收藏夹",isPublic = true) public ApiResult deleteFavorites(@Valid @RequestParam @NotNull Integer favoritesId){ - ticketFavoritesService.deleteFavorites(AdminUserUtil.getUserId(),favoritesId); + ticketFavoritesService.deleteFavorites(AdminUserUtil.getUserId(),AppUserUtil.getFrom(),favoritesId); return ApiResult.success(); } @@ -197,7 +197,7 @@ public class TicketController extends ControllerBase { */ @PostMapping("moveFavorites") public ApiResult moveFavorites(@Valid @RequestBody FavoritesMoveRequest request){ - ticketFavoritesService.moveFavorites(AdminUserUtil.getUserId(),request); + ticketFavoritesService.moveFavorites(request); return ApiResult.success(); } @@ -207,7 +207,7 @@ public class TicketController extends ControllerBase { */ @PostMapping("moveFavoritesTicket") public ApiResult moveFavoritesTicket(@Valid @RequestBody FavoritesTicketMoveRequest request){ - ticketFavoritesService.moveFavoritesTicket(AdminUserUtil.getUserId(),request); + ticketFavoritesService.moveFavoritesTicket(AdminUserUtil.getUserId(),AppUserUtil.getFrom(),request); return ApiResult.success(); } @@ -218,7 +218,7 @@ public class TicketController extends ControllerBase { @PostMapping("followTiket") @ApiMark(moduleName = "工单管理", apiName = "关注工单") public ApiResult followTiket(@Valid @RequestBody AdminFollowRequest request){ - ticketFollowService.follow(request, AdminUserUtil.getUserId()); + ticketFollowService.follow(request, AdminUserUtil.getUserId(),AppUserUtil.getFrom()); return ApiResult.success(); } @@ -228,7 +228,7 @@ public class TicketController extends ControllerBase { **/ @PostMapping("unfollowTicket") public ApiResult unfollowTicket(@Valid @RequestParam @NotNull Integer ticketId){ - ticketFollowService.unfollow(AdminUserUtil.getUserId(),ticketId); + ticketFollowService.unfollow(AdminUserUtil.getUserId(),AppUserUtil.getFrom(),ticketId); return ApiResult.success(); } diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketCompleteEvent.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketCompleteEvent.java index fd47d07e..ae2aa6eb 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketCompleteEvent.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketCompleteEvent.java @@ -58,6 +58,7 @@ public class TicketCompleteEvent extends ApplicationEvent implements Application //我的消息 appMessageService.add(new AppMessage() .setUserId(ticket.getUserId()) + .setUserPlatform(ticket.getUserPlatform()) .setTicketId(ticket.getId()) .setSubType(MessageSubType.TicketCompletion.getState()) .setIsRead(false) diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketReplyEvent.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketReplyEvent.java index 6845ba59..b06fa92a 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketReplyEvent.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketReplyEvent.java @@ -60,6 +60,7 @@ public class TicketReplyEvent extends ApplicationEvent implements ApplicationCon //我的消息 appMessageService.add(new AppMessage() .setUserId(ticket.getUserId()) + .setUserPlatform(ticket.getUserPlatform()) .setTicketId(ticket.getId()) .setSubType(MessageSubType.TicketNewMessage.getState()) .setIsRead(false) 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 4cd54a23..20da0433 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 @@ -41,7 +41,7 @@ public class MessageController extends ControllerBase { */ @PostMapping("searchMessages") public ApiResult> searchMessages(@RequestBody AppMessageSearchRequest request) { - return ApiResult.success(appMessageService.search(AppUserUtil.getUserId(), request)); + return ApiResult.success(appMessageService.search(AppUserUtil.getUserId(),AppUserUtil.getFrom(), request)); } /** @@ -50,7 +50,7 @@ public class MessageController extends ControllerBase { */ @PostMapping("setReaded") public ApiResult setReaded(@Valid @RequestBody List ids) { - appMessageService.setReaded(AppUserUtil.getUserId(),ids); + appMessageService.setReaded(AppUserUtil.getUserId(),AppUserUtil.getFrom(),ids); return ApiResult.success(); } @@ -60,7 +60,7 @@ public class MessageController extends ControllerBase { */ @PostMapping("setNotRead") public ApiResult setNotRead(@Valid @RequestBody List ids) { - appMessageService.setNotRead(AppUserUtil.getUserId(),ids); + appMessageService.setNotRead(AppUserUtil.getUserId(),AppUserUtil.getFrom(),ids); return ApiResult.success(); } @@ -71,7 +71,7 @@ public class MessageController extends ControllerBase { */ @GetMapping("getNotReadMessages") public ApiResult> getNotReadMessages(@RequestParam(defaultValue = "10") Integer num) { - return ApiResult.success(appMessageService.getNotReadMessage(AppUserUtil.getUserId(), num)); + return ApiResult.success(appMessageService.getNotReadMessage(AppUserUtil.getUserId(),AppUserUtil.getFrom(), num)); } /** @@ -80,7 +80,7 @@ public class MessageController extends ControllerBase { */ @GetMapping("getNotReadMessageCount") public ApiResult getNotReadMessageCount(){ - return ApiResult.success(appMessageService.getNotReadMessageCount(AppUserUtil.getUserId())); + return ApiResult.success(appMessageService.getNotReadMessageCount(AppUserUtil.getUserId(),AppUserUtil.getFrom())); } /** diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java index bee91b4b..ce73e7a7 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java @@ -185,7 +185,7 @@ public class TicketController extends ControllerBase { **/ @PostMapping("followTiket") public ApiResult followTiket(@Valid @RequestBody FollowRequest request){ - ticketFollowService.handle(request, AppUserUtil.getUserId()); + ticketFollowService.handle(request, AppUserUtil.getUserId(),AppUserUtil.getFrom()); return ApiResult.success(); } @@ -198,17 +198,27 @@ public class TicketController extends ControllerBase { public ApiResult getTicket(@Valid @RequestParam @NotNull Integer id) { Ticket ticket = ticketService.getById(id); VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("未找到工单"); - AppUser user = appUserService.getById(ticket.getUserId()); String areaName = ""; - if (user.getIsPrimary()){ - areaName=StrUtil.join(",",customerService.getAreas(Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList()))); - }else if (Objects.nonNull(user.getAreaId())){ - AppArea area = appAreaService.getById(user.getAreaId()); - if (Objects.nonNull(area)) { - areaName = area.getName(); + List companys=new ArrayList<>(); + String userName,userAvatar; + if (StrUtil.equals(ticket.getUserPlatform(),"app")) { + AppUser user = appUserService.getById(ticket.getUserId()); + userName = user.getName(); + userAvatar = user.getAvatar(); + if (user.getIsPrimary()) { + areaName = StrUtil.join(",", customerService.getAreas(Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList()))); + } else if (Objects.nonNull(user.getAreaId())) { + AppArea area = appAreaService.getById(user.getAreaId()); + if (Objects.nonNull(area)) { + areaName = area.getName(); + } } + companys = customerService.listByIds(Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList())); + }else { + AdminUser adminUser=adminUserService.getById(ticket.getUserId()); + userName = adminUser.getUserName(); + userAvatar = adminUser.getAvatar(); } - List companys = customerService.listByIds(Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList())); DeviceInfoVO device = deviceService.getByDeviceNo(ticket.getDeviceNo()); String handle = ticket.getHandle(); if (StrUtil.isNotBlank(handle)) { @@ -230,8 +240,8 @@ public class TicketController extends ControllerBase { .setImages(getFileVOs(ticket.getImages())) .setAttachments(getFileVOs(ticket.getAttachments())) .setCreateUserId(ticket.getUserId()) - .setCreateUserName(user.getName()) - .setCreateUserAvatar(user.getAvatar()) + .setCreateUserName(userName) + .setCreateUserAvatar(userAvatar) .setCreateTime(ticket.getCreateTime()) .setAreaName(areaName) .setSolveTime(ticket.getSolveTime()) @@ -338,22 +348,25 @@ public class TicketController extends ControllerBase { VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("工单不存在"); VUtils.trueThrowBusinessError(Byte.compare(ticket.getState(), TicketState.Processing.getState()) > 1) .throwMessage("当前工单状态不允许发送消息"); - VUtils.trueThrowBusinessError(!Objects.equals(ticket.getUserId(),AppUserUtil.getUserId())) + VUtils.trueThrowBusinessError(!(Objects.equals(ticket.getUserId(),AppUserUtil.getUserId()) && StrUtil.equals(ticket.getUserPlatform(), AppUserUtil.getFrom()))) .throwMessage("工单创建人才能发送消息"); - AppUser user = appUserService.getById(AppUserUtil.getUserId()); ChatMessageDTO message = new ChatMessageDTO() .setId(IdUtil.getSnowflakeNextIdStr()) .setFrom("app") .setTicketState(ticket.getState()) - .setSenderId(user.getId()) - .setSenderName(user.getName()) - .setSenderAvatar(user.getAvatar()) .setContent(request.getContent()) .setCreateTime(Instant.now()) .setAttachments(request.getAttachments()) .setImages(request.getImages()) .setRemindUsers(request.getRemindUsers()) .setAudioUrl(request.getAudioUrl()); + if (StrUtil.equals(ticket.getUserPlatform(),"app")){ + AppUser user = appUserService.getById(AppUserUtil.getUserId()); + message.setSenderId(user.getId()).setSenderName(user.getName()).setSenderAvatar(user.getAvatar()); + }else { + AdminUser adminUser= adminUserService.getById(AppUserUtil.getUserId()); + message.setSenderId(adminUser.getId()).setSenderName(adminUser.getUserName()).setSenderAvatar(adminUser.getAvatar()); + } if(Objects.nonNull(request.getQuoteId())){ ChatMessageDTO quoteMessage = ticketChatService.getMessage(request.getTicketId(), request.getQuoteId()); message.setQuote(quoteMessage); diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketCreateEvent.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketCreateEvent.java index 080fa489..4dfc0906 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketCreateEvent.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketCreateEvent.java @@ -2,6 +2,7 @@ package com.nflg.mobilebroken.cfs.event; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DatePattern; +import cn.hutool.core.util.StrUtil; import com.nflg.mobilebroken.common.constant.Constant; import com.nflg.mobilebroken.common.constant.MessageSubType; import com.nflg.mobilebroken.common.constant.MessageType; @@ -87,12 +88,19 @@ public class TicketCreateEvent extends ApplicationEvent implements ApplicationCo private void sendEmail(){ try { - AppUser appUser=appUserService.getById(ticket.getUserId()); + String tickerUserName; + if (StrUtil.equals(ticket.getUserPlatform(),"app")){ + AppUser appUser=appUserService.getById(ticket.getUserId()); + tickerUserName=appUser.getName(); + }else { + AdminUser adminUser=adminUserService.getById(ticket.getUserId()); + tickerUserName=adminUser.getUserName(); + } String subject=dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY,Constant.DICTIONARY_ITEM_EMAIL_TITLE_TICKET_CREATE,language); String content=dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY,Constant.DICTIONARY_ITEM_EMAIL_CONTENT_TICKET_NOTIFY,language) .replace("${no}",ticket.getNo()) .replace("${title}",ticket.getTitle()) - .replace("${createUser}",appUser.getName()) + .replace("${createUser}",tickerUserName) .replace("${handleUser}","") .replace("${createTime}",toTimeString(ticket.getCreateTime())) .replace("${msg}",subject); 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 ad3c5992..c9a4fd33 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 @@ -24,7 +24,7 @@ public class Constant { public static final String REDIS_KEY_MESSAGE_NOT_READ_COUNT_ADMIN = "admin:message:unread"; - public static final String REDIS_KEY_MESSAGE_NOT_READ_COUNT_APP = "app:message:unread"; + public static final String REDIS_KEY_MESSAGE_NOT_READ_COUNT_APP = "app:message:unread:{}"; public static final String REDIS_KEY_MESSAGECONFIG_WX = "wxNotifyEnabled"; diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/dto/UserDTO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/dto/UserDTO.java index 889ff982..bbdd3f0b 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/dto/UserDTO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/dto/UserDTO.java @@ -24,6 +24,9 @@ public class UserDTO { //是否是主账号 private Boolean isPrimary; + //用户来源平台,app或者admin + private String from; + //公司id private List companyIds; } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AreaSearchRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AreaSearchRequest.java index 5eddd521..522e8280 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AreaSearchRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AreaSearchRequest.java @@ -17,4 +17,6 @@ public class AreaSearchRequest extends PageRequest { //区域创建人id @JsonIgnore private Integer createBy; + + } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/util/AppUserUtil.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/util/AppUserUtil.java index ba226a81..aa1950c1 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/util/AppUserUtil.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/util/AppUserUtil.java @@ -44,6 +44,7 @@ public class AppUserUtil { user.setEmail(getEmail()); user.setCompanyIds(getCompanyIds()); user.setIsPrimary(isPrimary()); + user.setFrom(getFrom()); return user; } } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AppMessage.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AppMessage.java index 135c7454..3a68003b 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AppMessage.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AppMessage.java @@ -39,6 +39,11 @@ public class AppMessage implements Serializable { */ private Integer userId; + /** + * 用户来源平台,app或者admin + */ + private String userPlatform; + /** * 任务事项,5:工单新消息;6:工单完成;10:工单超时 */ 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 f09656de..eb47663f 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 @@ -82,6 +82,11 @@ public class Ticket implements Serializable { */ private Integer userId; + /** + * 用户来源平台,app或者admin + */ + private String userPlatform; + /** * 创建时间 */ diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/TicketFavorites.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/TicketFavorites.java index 80e1d699..0ece0864 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/TicketFavorites.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/TicketFavorites.java @@ -49,6 +49,11 @@ public class TicketFavorites implements Serializable { */ private Integer createBy; + /** + * 用户来源平台,app或者admin + */ + private String userPlatform; + /** * 创建时间 */ diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AppMessageMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AppMessageMapper.java index 39c869c0..e7d7dac9 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AppMessageMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AppMessageMapper.java @@ -15,7 +15,7 @@ import com.nflg.mobilebroken.repository.entity.AppMessage; */ public interface AppMessageMapper extends BaseMapper { - IPage getNotReadMessage(Integer userId, Integer num, IPage page); + IPage getNotReadMessage(Integer userId,String from, Integer num, IPage page); - IPage search(Integer userId, String title, IPage page); + IPage search(Integer userId,String from, String title, IPage page); } 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 69ffb302..8721e3c5 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 @@ -21,9 +21,9 @@ import java.util.List; */ public interface TicketMapper extends BaseMapper { - IPage searchMy(IPage page, TicketSearchRequest request, Integer userId,String language); + IPage searchMy(IPage page, TicketSearchRequest request, Integer userId,String from,String language); - IPage searchFollow(IPage page, TicketSearchRequest request, Integer userId,String language); + IPage searchFollow(IPage page, TicketSearchRequest request, Integer userId,String from,String language); IPage searchArea(IPage page, TicketSearchRequest request, String companyId, Integer userId,String language,Boolean isPrimary,String companyCode); @@ -37,7 +37,7 @@ public interface TicketMapper extends BaseMapper { List searchAllFromAdminAndFollow(AdminTicketSearchRequest request, Integer userId); - List getAdminFavorites(Integer userId,Integer favoritesId); + List getAdminFavorites(Integer userId,String from,Integer favoritesId); IPage searchByFavouritesId(Integer userId, Integer favouritesId, Page page); } 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 285def2b..fa83d3dd 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 @@ -18,15 +18,15 @@ import java.util.List; */ public interface IAppMessageService extends IService { - IPage getNotReadMessage(Integer userId, Integer num); + IPage getNotReadMessage(Integer userId,String from, Integer num); - IPage search(Integer userId, AppMessageSearchRequest request); + IPage search(Integer userId,String from, AppMessageSearchRequest request); - void setReaded(Integer userId,List ids); + void setReaded(Integer userId,String from,List ids); - void setNotRead(Integer userId,List ids); + void setNotRead(Integer userId,String from,List ids); void add(AppMessage message); - Integer getNotReadMessageCount(Integer userId); + Integer getNotReadMessageCount(Integer userId,String from); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketFavoritesService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketFavoritesService.java index 913ed0dc..6696daeb 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketFavoritesService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketFavoritesService.java @@ -18,15 +18,15 @@ import com.nflg.mobilebroken.repository.entity.TicketFavorites; */ public interface ITicketFavoritesService extends IService { - FavoritesVO getList(Integer userId,Integer id); + FavoritesVO getList(Integer userId,String from,Integer id); - void addFavorites(AdminFavoritesRequest request, Integer userId); + void addFavorites(AdminFavoritesRequest request, Integer userId,String from); - void deleteFavorites(Integer userId,Integer favoritesId); + void deleteFavorites(Integer userId,String from,Integer favoritesId); - void updateFavorites(FavoritesUpdateRequest request, Integer userId); + void updateFavorites(FavoritesUpdateRequest request, Integer userId,String from); - void moveFavorites(Integer userId, FavoritesMoveRequest request); + void moveFavorites(FavoritesMoveRequest request); - void moveFavoritesTicket(Integer userId, FavoritesTicketMoveRequest request); + void moveFavoritesTicket(Integer userId,String from, FavoritesTicketMoveRequest request); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketFollowService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketFollowService.java index f9a9ed28..020f4f29 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketFollowService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketFollowService.java @@ -15,11 +15,11 @@ import com.nflg.mobilebroken.repository.entity.TicketFollow; */ public interface ITicketFollowService extends IService { - void handle(FollowRequest request, Integer userId); + void handle(FollowRequest request, Integer userId,String from); - void follow(AdminFollowRequest request, Integer userId); + void follow(AdminFollowRequest request, Integer userId,String from); - void unfollow(Integer userId, Integer ticketId); + void unfollow(Integer userId,String from, Integer ticketId); - void deleteFavorites(Integer userId, Integer favoritesId); + void deleteFavorites(Integer userId,String from, Integer favoritesId); } 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 c1e32b1e..184d086d 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 @@ -51,7 +51,7 @@ public interface ITicketService extends IService { List getTicketHandle(Integer id); - List getAdminFavorites(Integer userId,Integer favoritesId); + List getAdminFavorites(Integer userId,String from,Integer favoritesId); Ticket rejectTicket(Integer id); diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppAreaServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppAreaServiceImpl.java index 6050c16b..2cb202ad 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppAreaServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppAreaServiceImpl.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.request.AreaSearchRequest; import com.nflg.mobilebroken.common.pojo.request.EnableRequest; import com.nflg.mobilebroken.common.pojo.vo.AreaVO; @@ -56,6 +57,9 @@ public class AppAreaServiceImpl extends ServiceImpl impl @Override public IPage search(AreaSearchRequest request) { + if (StrUtil.equals(AppUserUtil.getFrom(), Constant.FROM_ADMIN)){ + return new Page<>(request.getPage(), request.getPageSize()); + } if (AppUserUtil.isPrimary()){ request.setCreateBy(AppUserUtil.getUserId()); }else { 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 11997445..15649265 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 @@ -37,13 +37,13 @@ public class AppMessageServiceImpl extends ServiceImpl redisTemplate; @Override - public IPage getNotReadMessage(Integer userId, Integer num) { - return baseMapper.getNotReadMessage(userId, num, new Page<>(1, num)); + public IPage getNotReadMessage(Integer userId,String from, Integer num) { + return baseMapper.getNotReadMessage(userId,from, num, new Page<>(1, num)); } @Override - public IPage search(Integer userId, AppMessageSearchRequest request) { - IPage datas = baseMapper.search(userId, request.getTitle(), new Page<>(request.getPage(), request.getPageSize())); + public IPage search(Integer userId,String from, AppMessageSearchRequest request) { + IPage datas = baseMapper.search(userId,from, request.getTitle(), new Page<>(request.getPage(), request.getPageSize())); Map userMap = new HashMap<>(); datas.getRecords().forEach(d -> { if (StrUtil.isNotBlank(d.getTicketHandleBy())) { @@ -64,23 +64,23 @@ public class AppMessageServiceImpl extends ServiceImpl ids) { + public void setReaded(Integer userId,String from,List ids) { lambdaUpdate() .set(AppMessage::getIsRead, true) .eq(AppMessage::getUserId, userId) .in(AppMessage::getId, ids) .update(); - setUnreadMessageCount(userId); + setUnreadMessageCount(userId,from); } @Override - public void setNotRead(Integer userId,List ids) { + public void setNotRead(Integer userId,String from,List ids) { lambdaUpdate() .set(AppMessage::getIsRead, false) .eq(AppMessage::getUserId, userId) .in(AppMessage::getId, ids) .update(); - setUnreadMessageCount(userId); + setUnreadMessageCount(userId,from); } @Override @@ -88,21 +88,23 @@ public class AppMessageServiceImpl extends ServiceImpl() .eq(AppMessage::getIsRead, false) .eq(AppMessage::getSubType, message.getSubType()) - .eq(AppMessage::getUserId, message.getUserId())); + .eq(AppMessage::getUserId, message.getUserId()) + .eq(AppMessage::getUserPlatform, message.getUserPlatform())); save(message); - setUnreadMessageCount(message.getUserId()); + setUnreadMessageCount(message.getUserId(),message.getUserPlatform()); } - private void setUnreadMessageCount(Integer userId){ + private void setUnreadMessageCount(Integer userId,String from){ Integer count= Math.toIntExact(lambdaQuery() .eq(AppMessage::getIsRead, false) .eq(AppMessage::getUserId, userId) + .eq(AppMessage::getUserPlatform, from) .count()); - redisTemplate.opsForHash().put(Constant.REDIS_KEY_MESSAGE_NOT_READ_COUNT_APP, userId, count); + redisTemplate.opsForHash().put(StrUtil.format(Constant.REDIS_KEY_MESSAGE_NOT_READ_COUNT_APP,from), userId, count); } @Override - public Integer getNotReadMessageCount(Integer userId) { - return Optional.ofNullable((Integer) redisTemplate.opsForHash().get(Constant.REDIS_KEY_MESSAGE_NOT_READ_COUNT_APP, userId)).orElse(0); + public Integer getNotReadMessageCount(Integer userId, String from) { + return Optional.ofNullable((Integer) redisTemplate.opsForHash().get(StrUtil.format(Constant.REDIS_KEY_MESSAGE_NOT_READ_COUNT_APP,from), userId)).orElse(0); } } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java index fa14b7a9..913ab6ae 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java @@ -1,7 +1,9 @@ package com.nflg.mobilebroken.repository.service.impl; +import cn.hutool.core.util.StrUtil; 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.query.PageBaseQuery; import com.nflg.mobilebroken.common.pojo.request.SearchDeviceRequest; import com.nflg.mobilebroken.common.pojo.vo.DeviceAgentVO; @@ -50,13 +52,10 @@ public class DeviceServiceImpl extends ServiceImpl impleme @Override public Page searchDevice(SearchDeviceRequest request,String language) { -// IPage page = lambdaQuery() -// .like(StrUtil.isNotBlank(request.getDeviceNo()), Device::getDeviceNo, request.getDeviceNo()) -// .like(StrUtil.isNotBlank(request.getModelNo()), Device::getModelNo, request.getModelNo()) -// .between(Objects.nonNull(request.getStartTime()), Device::getShipmentDate, request.getStartTime(), request.getEndTime()) -// .page(new Page<>(request.getPage(), request.getPageSize())); -// return PageUtil.convert(page, d -> Convert.convert(DeviceVO.class, d)); - List companyIds = AppUserUtil.getCompanyIds(); + List companyIds = null; + if (StrUtil.equals(AppUserUtil.getFrom(), Constant.FROM_APP)){ + companyIds = AppUserUtil.getCompanyIds(); + } return baseMapper.searchDevice(request, companyIds,language ,new Page<>(request.getPage(), request.getPageSize())); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketFavoritesServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketFavoritesServiceImpl.java index b89cbd95..11e38169 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketFavoritesServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketFavoritesServiceImpl.java @@ -1,5 +1,6 @@ package com.nflg.mobilebroken.repository.service.impl; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nflg.mobilebroken.common.pojo.request.AdminFavoritesRequest; import com.nflg.mobilebroken.common.pojo.request.FavoritesMoveRequest; @@ -39,45 +40,46 @@ public class TicketFavoritesServiceImpl extends ServiceImplnew FavoritesVO().setId(f.getId()).setName(f.getName())).collect(Collectors.toList())); - vo.setTickets(ticketService.getAdminFavorites(userId,id)); + vo.setTickets(ticketService.getAdminFavorites(userId,from,id)); return vo; } @Override - public void addFavorites(AdminFavoritesRequest request, Integer userId) { + public void addFavorites(AdminFavoritesRequest request, Integer userId,String from) { VUtils.trueThrowBusinessError(lambdaQuery().eq(TicketFavorites::getParentId,request.getParentId()).eq(TicketFavorites::getName,request.getName()).exists()) .throwMessage("已存在该名称的收藏夹"); - save(new TicketFavorites().setParentId(request.getParentId()).setName(request.getName()).setCreateBy(userId).setCreateTime(LocalDateTime.now())); + save(new TicketFavorites().setParentId(request.getParentId()).setName(request.getName()).setCreateBy(userId).setUserPlatform(from).setCreateTime(LocalDateTime.now())); } @Transactional @Override - public void deleteFavorites(Integer userId, Integer favoritesId) { + public void deleteFavorites(Integer userId,String from, Integer favoritesId) { TicketFavorites favorites = lambdaQuery().eq(TicketFavorites::getId, favoritesId).one(); VUtils.trueThrowBusinessError(Objects.isNull(favorites)).throwMessage("该收藏夹不存在"); VUtils.trueThrowBusinessError(!Objects.equals(favorites.getCreateBy(), userId)).throwMessage("无权限删除该收藏夹"); - ticketFollowService.deleteFavorites(userId, favoritesId); + ticketFollowService.deleteFavorites(userId,from, favoritesId); if (!Objects.equals(favoritesId, 0)){ lambdaUpdate().eq(TicketFavorites::getId,favoritesId).remove(); } } @Override - public void updateFavorites(FavoritesUpdateRequest request, Integer userId) { + public void updateFavorites(FavoritesUpdateRequest request, Integer userId,String from) { lambdaUpdate() .set(TicketFavorites::getName,request.getName()) .eq(TicketFavorites::getId,request.getId()) .eq(TicketFavorites::getCreateBy,userId) + .eq(TicketFavorites::getUserPlatform,from) .update(); } @Override - public void moveFavorites(Integer userId, FavoritesMoveRequest request) { + public void moveFavorites(FavoritesMoveRequest request) { int orderNum=100000; if (Objects.nonNull(request.getNextFavoritesId())){ orderNum=lambdaQuery() @@ -92,12 +94,12 @@ public class TicketFavoritesServiceImpl extends ServiceImpl implements ITicketFollowService { @Override - public void handle(FollowRequest request, Integer userId) { + public void handle(FollowRequest request, Integer userId,String from) { + byte bf = (byte) (StrUtil.equals(from, "app") ? 0 : 1); if (request.getIsFollow()) { TicketFollow ticketFollow = lambdaQuery() .eq(TicketFollow::getTicketId, request.getTicketId()) .eq(TicketFollow::getUserId, userId) - .eq(TicketFollow::getFrom, (byte) 0) + .eq(TicketFollow::getFrom, bf) .one(); if (Objects.isNull(ticketFollow)) { TicketFollow follow = new TicketFollow() .setTicketId(request.getTicketId()) .setUserId(userId) - .setFrom((byte) 0) + .setFrom(bf) .setCreateTime(LocalDateTime.now()); save(follow); } @@ -44,40 +46,43 @@ public class TicketFollowServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(TicketFollow::getTicketId, request.getTicketId()); lambdaQueryWrapper.eq(TicketFollow::getUserId, userId); - lambdaQueryWrapper.eq(TicketFollow::getFrom, (byte) 0); + lambdaQueryWrapper.eq(TicketFollow::getFrom, bf); this.remove(lambdaQueryWrapper); } } @Transactional @Override - public void follow(AdminFollowRequest request, Integer userId) { + public void follow(AdminFollowRequest request, Integer userId,String from) { + byte bf = (byte) (StrUtil.equals(from, "app") ? 0 : 1); this.remove(new LambdaQueryWrapper() .eq(TicketFollow::getTicketId, request.getTicketId()) .eq(TicketFollow::getUserId, userId) - .eq(TicketFollow::getFrom, (byte) 1)); + .eq(TicketFollow::getFrom, bf)); TicketFollow ticketFollow = new TicketFollow() .setTicketId(request.getTicketId()) .setUserId(userId) .setFavoritesId(request.getFavoritesId()) - .setFrom((byte) 1) + .setFrom(bf) .setCreateTime(LocalDateTime.now()); save(ticketFollow); } @Override - public void unfollow(Integer userId, Integer ticketId) { + public void unfollow(Integer userId,String from, Integer ticketId) { + byte bf = (byte) (StrUtil.equals(from, "app") ? 0 : 1); this.remove(new LambdaQueryWrapper() .eq(TicketFollow::getTicketId, ticketId) .eq(TicketFollow::getUserId, userId) - .eq(TicketFollow::getFrom, (byte) 1)); + .eq(TicketFollow::getFrom, bf)); } @Override - public void deleteFavorites(Integer userId, Integer favoritesId) { + public void deleteFavorites(Integer userId,String from, Integer favoritesId) { + byte bf = (byte) (StrUtil.equals(from, "app") ? 0 : 1); this.remove(new LambdaQueryWrapper() .eq(TicketFollow::getFavoritesId, favoritesId) .eq(TicketFollow::getUserId, userId) - .eq(TicketFollow::getFrom, (byte) 1)); + .eq(TicketFollow::getFrom, bf)); } } 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 3272f61b..13cfcc7b 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 @@ -81,6 +81,7 @@ public class TicketServiceImpl extends ServiceImpl impleme .setDescription(request.getDescription()) .setState(TicketState.PendingProcessing.getState()) .setUserId(userId) + .setUserPlatform(AppUserUtil.getFrom()) .setCreateTime(LocalDateTime.now()); save(ticket); // Collection files=CollectionUtil.addAll(request.getImages(),request.getAttachments()); @@ -131,9 +132,9 @@ public class TicketServiceImpl extends ServiceImpl impleme request.setEndTime(request.getEndTime().plusDays(1)); } if (request.getType()==1){ - return baseMapper.searchMy(new Page<>(request.getPage(), request.getPageSize()), request, user.getId(),language); + return baseMapper.searchMy(new Page<>(request.getPage(), request.getPageSize()), request, user.getId(),user.getFrom(),language); }else if (request.getType()==2){ - return baseMapper.searchFollow(new Page<>(request.getPage(), request.getPageSize()), request, user.getId(),language); + return baseMapper.searchFollow(new Page<>(request.getPage(), request.getPageSize()), request, user.getId(),user.getFrom(),language); }else if (request.getType()==3) { String companyCode = ""; if (!user.getIsPrimary()){ @@ -305,7 +306,7 @@ public class TicketServiceImpl extends ServiceImpl impleme @Override public Ticket revoked(Integer id) { Ticket ticket=lambdaQuery().eq(Ticket::getId, id).one(); - VUtils.trueThrowBusinessError(!Objects.equals(ticket.getUserId(), AppUserUtil.getUserId())) + VUtils.trueThrowBusinessError(!(Objects.equals(ticket.getUserId(), AppUserUtil.getUserId()) && StrUtil.equals(ticket.getUserPlatform(), AppUserUtil.getFrom()))) .throwMessage("无权操作该工单"); VUtils.trueThrowBusinessError(Byte.compare(ticket.getState(), TicketState.ProcessingCompleted.getState())>0) .throwMessage("当前工单状态不允许撤销"); @@ -320,7 +321,7 @@ public class TicketServiceImpl extends ServiceImpl impleme @Override public Ticket reopen(Integer id) { Ticket ticket=lambdaQuery().eq(Ticket::getId, id).one(); - VUtils.trueThrowBusinessError(!Objects.equals(ticket.getUserId(), AppUserUtil.getUserId())) + VUtils.trueThrowBusinessError(!(Objects.equals(ticket.getUserId(), AppUserUtil.getUserId()) && StrUtil.equals(ticket.getUserPlatform(), AppUserUtil.getFrom()))) .throwMessage("无权操作该工单"); VUtils.trueThrowBusinessError(Byte.compare(ticket.getState(), TicketState.ProcessingCompleted.getState())>0) .throwMessage("当前工单状态不允许重新打开"); @@ -367,8 +368,8 @@ public class TicketServiceImpl extends ServiceImpl impleme } @Override - public List getAdminFavorites(Integer userId,Integer favoritesId) { - return baseMapper.getAdminFavorites(userId,favoritesId); + public List getAdminFavorites(Integer userId,String from,Integer favoritesId) { + return baseMapper.getAdminFavorites(userId,from,favoritesId); } @Override diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/AppMessageMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/AppMessageMapper.xml index 084e0a12..483846ff 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/AppMessageMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/AppMessageMapper.xml @@ -7,7 +7,7 @@ FROM app_message m INNER JOIN ticket t ON m.ticket_id=t.id INNER JOIN app_user u ON t.user_id=u.id - WHERE m.is_read=0 AND m.user_id=#{userId} + WHERE m.is_read=0 AND m.user_id=#{userId} AND m.user_platform=#{from} ORDER BY m.create_time DESC @@ -105,11 +105,11 @@ FROM ticket t LEFT JOIN app_user u ON t.user_id=u.id LEFT JOIN app_area a2 ON u.area_id=a2.id - INNER JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.from=0 + INNER JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.from=IF(#{from}='app',0,1) LEFT JOIN ticket_evaluate te ON t.id=te.ticket_id AND t.state=2 LEFT JOIN t_base_part p ON t.component_id=p.id LEFT JOIN t_base_language_data l ON p.id=l.source_id AND l.language_code=#{language} - WHERE tf.user_id=#{userId} AND t.state!=4 + WHERE tf.user_id=#{userId} AND t.user_platform=#{from} AND t.state!=4 ORDER BY t.id DESC @@ -229,7 +229,7 @@ FROM ticket_follow tf INNER JOIN ticket t ON tf.ticket_id = t.id WHERE tf.`from` = 1 - AND tf.user_id = #{userId} + AND tf.user_id = #{userId} AND tf.from=IF(#{from}='app',0,1) AND tf.favorites_id = #{favoritesId} ORDER BY t.state,t.id DESC From d8aabf19d4e6e6fc64c05e0a2750fba148ce1631 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 1 Jul 2025 09:27:38 +0800 Subject: [PATCH 4/5] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=B7=A5=E5=8D=95=E6=B6=88=E6=81=AF=E7=9A=84=E6=9C=AA=E8=AF=BB?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E5=AF=BC=E8=87=B4=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nflg/mobilebroken/admin/controller/TicketController.java | 2 +- .../com/nflg/mobilebroken/cfs/controller/TicketController.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 c270990a..cedcf456 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 @@ -705,7 +705,7 @@ public class TicketController extends ControllerBase { for (ChatMessageVO messageVO : messageVOS) { if (Objects.equals(messageVO.getSenderId(), userId) || readeds.contains(messageVO.getId())) { messageVO.setReaded(true); - } else { + } else if(Objects.nonNull(messageVO.getId())){ notReadeds.add(messageVO.getId()); } } diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java index ce73e7a7..04807717 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java @@ -325,7 +325,7 @@ public class TicketController extends ControllerBase { for (ChatMessageVO messageVO : messageVOS) { if (Objects.equals(messageVO.getSenderId(), userId) || readeds.contains(messageVO.getId())) { messageVO.setReaded(true); - } else { + } else if(Objects.nonNull(messageVO.getId())){ notReadeds.add(messageVO.getId()); } } From 5f5ae39a06641d1723916eead60423a60c3a4c60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Wed, 23 Jul 2025 13:47:07 +0800 Subject: [PATCH 5/5] =?UTF-8?q?feat:=20bug-384=20=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=AB=AF=E9=9C=80=E8=A6=81=E6=94=AF=E6=8C=81=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=AB=AF=E7=94=A8=E6=88=B7=E6=B7=BB=E5=8A=A0=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E5=92=8C=E5=90=8E=E7=BB=AD=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/TicketServiceImpl.java | 27 +++++++++++-------- .../main/resources/mapper/TicketMapper.xml | 2 +- 2 files changed, 17 insertions(+), 12 deletions(-) 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 13cfcc7b..7daa81ff 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 @@ -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.constant.TicketState; import com.nflg.mobilebroken.common.constant.TicketUrgency; import com.nflg.mobilebroken.common.pojo.dto.UserDTO; @@ -132,19 +133,23 @@ public class TicketServiceImpl extends ServiceImpl impleme request.setEndTime(request.getEndTime().plusDays(1)); } if (request.getType()==1){ - return baseMapper.searchMy(new Page<>(request.getPage(), request.getPageSize()), request, user.getId(),user.getFrom(),language); - }else if (request.getType()==2){ - return baseMapper.searchFollow(new Page<>(request.getPage(), request.getPageSize()), request, user.getId(),user.getFrom(),language); - }else if (request.getType()==3) { - String companyCode = ""; - if (!user.getIsPrimary()){ - TBaseCustomer customer=customerService.getById(user.getCompanyIds().get(0)); - if (Objects.nonNull(customer)){ - companyCode = customer.getAgencyCompanyCode(); + return baseMapper.searchMy(new Page<>(request.getPage(), request.getPageSize()), request, user.getId(), user.getFrom(), language); + } else if (request.getType() == 2) { + return baseMapper.searchFollow(new Page<>(request.getPage(), request.getPageSize()), request, user.getId(), user.getFrom(), language); + } else if (request.getType() == 3) { + if (StrUtil.equals(AppUserUtil.getFrom(), Constant.FROM_ADMIN)) { + return baseMapper.searchArea(new Page<>(request.getPage(), request.getPageSize()), request, null, user.getId(), language, null, null); + } else { + String companyCode = ""; + if (!user.getIsPrimary()) { + TBaseCustomer customer = customerService.getById(user.getCompanyIds().get(0)); + if (Objects.nonNull(customer)) { + companyCode = customer.getAgencyCompanyCode(); + } } + return baseMapper.searchArea(new Page<>(request.getPage(), request.getPageSize()), request + , StrUtil.join(",", user.getCompanyIds()), user.getId(), language, user.getIsPrimary(), companyCode); } - return baseMapper.searchArea(new Page<>(request.getPage(), request.getPageSize()), request - , StrUtil.join(",",user.getCompanyIds()), user.getId(),language,user.getIsPrimary(),companyCode); } return null; } diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml index 4a9ac9a2..bc5b04ac 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml @@ -121,7 +121,7 @@ FROM ticket t LEFT JOIN app_user u ON t.user_id=u.id LEFT JOIN app_area a2 ON u.area_id=a2.id - LEFT JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} AND tf.from=0 + LEFT JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} AND tf.from=IF(#{from}='app',0,1) LEFT JOIN ticket_evaluate te ON t.id=te.ticket_id AND t.state=2 LEFT JOIN t_base_part p ON t.component_id=p.id LEFT JOIN t_base_language_data l ON p.id=l.source_id AND l.language_code=#{language}