From acf73b2799055b0e9cc7eef22c98fc2a03807cdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Mon, 26 May 2025 14:04:34 +0800 Subject: [PATCH 1/8] =?UTF-8?q?feat:=20bug-242=20=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=AB=AF=E7=99=BB=E5=BD=95=E6=B7=BB=E5=8A=A0=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=AB=AF=E7=94=A8=E6=88=B7=E7=99=BB=E5=BD=95=E7=9A=84=E6=94=AF?= =?UTF-8?q?=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 优先查询用户端的用户,如果不是用户端的用户,则查询管理端用户 --- .../auth/controller/AppController.java | 73 +++++++++++++------ .../cfs/controller/UserController.java | 16 +++- .../common/pojo/vo/AppLoginVO.java | 3 + .../common/pojo/vo/AppUserVO.java | 8 ++ .../mobilebroken/common/util/AppUserUtil.java | 5 ++ 5 files changed, 80 insertions(+), 25 deletions(-) diff --git a/nflg-mobilebroken-auth/src/main/java/com/nflg/mobilebroken/auth/controller/AppController.java b/nflg-mobilebroken-auth/src/main/java/com/nflg/mobilebroken/auth/controller/AppController.java index 32af85fc..ed1b9a00 100644 --- a/nflg-mobilebroken-auth/src/main/java/com/nflg/mobilebroken/auth/controller/AppController.java +++ b/nflg-mobilebroken-auth/src/main/java/com/nflg/mobilebroken/auth/controller/AppController.java @@ -10,7 +10,9 @@ import com.nflg.mobilebroken.common.pojo.ApiResult; import com.nflg.mobilebroken.common.pojo.vo.AppLoginVO; import com.nflg.mobilebroken.common.util.SaTokenAppUtil; import com.nflg.mobilebroken.common.util.VUtils; +import com.nflg.mobilebroken.repository.entity.AdminUser; import com.nflg.mobilebroken.repository.entity.AppUser; +import com.nflg.mobilebroken.repository.service.IAdminUserService; import com.nflg.mobilebroken.repository.service.IAppUserService; import com.nflg.mobilebroken.repository.service.IDictionaryItemTranslateService; import org.springframework.web.bind.annotation.GetMapping; @@ -34,6 +36,9 @@ public class AppController extends ControllerBase { @Resource private IAppUserService appUserService; + @Resource + private IAdminUserService adminUserService; + @Resource private IDictionaryItemTranslateService dictionaryItemTranslateService; @@ -46,30 +51,50 @@ public class AppController extends ControllerBase { @GetMapping("login") public ApiResult login(String userName, String password) { AppUser user=appUserService.getUser(userName,password); - VUtils.trueThrow(Objects.isNull(user)) - .throwMessage(STATE.PassportErr,dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR,Constant.DICTIONARY_ITEM_INCORRECTUSERNAMEORPASSWORD,Constant.DEFAULT_LANGUAGE_CODE)); - VUtils.trueThrow(Objects.equals(user.getState(), UserState.Disabled.getState())) - .throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR,Constant.DICTIONARY_ITEM_ACCOUNT_DISABLED,user.getLanguageCode())); - VUtils.trueThrow(Objects.equals(user.getState(), UserState.ToBeActivated.getState())) - .throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR,Constant.DICTIONARY_ITEM_ACCOUNT_NOT_ACTIVATED,user.getLanguageCode())); - VUtils.trueThrow(user.getExpireTime().isBefore(ChronoLocalDate.from(LocalDateTime.now())) && user.getIsPrimary()) - .throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR,Constant.DICTIONARY_ITEM_ACCOUNT_HAS_EXPIRED_PRIMARY,user.getLanguageCode())); - VUtils.trueThrow(user.getExpireTime().isBefore(ChronoLocalDate.from(LocalDateTime.now())) && !user.getIsPrimary()) - .throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR,Constant.DICTIONARY_ITEM_ACCOUNT_HAS_EXPIRED,user.getLanguageCode())); - SaTokenAppUtil.login(user.getId(), SaLoginConfig - .setExtra("from", "app") - .setExtra("name", user.getName()) - .setExtra("email", user.getEmail()) - .setExtra("companyIds", StrUtil.split(user.getCompanyId(), ",").stream().map(Integer::valueOf).collect(Collectors.toList())) - .setExtra("isPrimary", user.getIsPrimary())); - user.setLastLoginTime(LocalDateTime.now()); - appUserService.updateById(user); - SaTokenInfo tokenInfo = SaTokenAppUtil.getTokenInfo(); - return ApiResult.success(new AppLoginVO() - .setUserId(user.getId()) - .setToken(tokenInfo.getTokenValue()) - .setExpire(tokenInfo.getTokenTimeout()) - .setLanguageCode(user.getLanguageCode())); + if (Objects.nonNull(user)) { + VUtils.trueThrow(Objects.equals(user.getState(), UserState.Disabled.getState())) + .throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR, Constant.DICTIONARY_ITEM_ACCOUNT_DISABLED, user.getLanguageCode())); + VUtils.trueThrow(Objects.equals(user.getState(), UserState.ToBeActivated.getState())) + .throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR, Constant.DICTIONARY_ITEM_ACCOUNT_NOT_ACTIVATED, user.getLanguageCode())); + VUtils.trueThrow(user.getExpireTime().isBefore(ChronoLocalDate.from(LocalDateTime.now())) && user.getIsPrimary()) + .throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR, Constant.DICTIONARY_ITEM_ACCOUNT_HAS_EXPIRED_PRIMARY, user.getLanguageCode())); + VUtils.trueThrow(user.getExpireTime().isBefore(ChronoLocalDate.from(LocalDateTime.now())) && !user.getIsPrimary()) + .throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR, Constant.DICTIONARY_ITEM_ACCOUNT_HAS_EXPIRED, user.getLanguageCode())); + SaTokenAppUtil.login(user.getId(), SaLoginConfig + .setExtra("from", "app") + .setExtra("name", user.getName()) + .setExtra("email", user.getEmail()) + .setExtra("companyIds", StrUtil.split(user.getCompanyId(), ",").stream().map(Integer::valueOf).collect(Collectors.toList())) + .setExtra("isPrimary", user.getIsPrimary())); + user.setLastLoginTime(LocalDateTime.now()); + appUserService.updateById(user); + SaTokenInfo tokenInfo = SaTokenAppUtil.getTokenInfo(); + return ApiResult.success(new AppLoginVO() + .setUserId(user.getId()) + .setToken(tokenInfo.getTokenValue()) + .setExpire(tokenInfo.getTokenTimeout()) + .setLanguageCode(user.getLanguageCode()) + .setPlatform("app")); + }else { + AdminUser adminUser =adminUserService.getUser(userName,password); + VUtils.trueThrow(Objects.isNull(adminUser)) + .throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR, Constant.DICTIONARY_ITEM_INCORRECTUSERNAMEORPASSWORD, Constant.DEFAULT_LANGUAGE_CODE)); + VUtils.trueThrow(Objects.equals(adminUser.getState(), UserState.Disabled.getState())) + .throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR, Constant.DICTIONARY_ITEM_ACCOUNT_DISABLED, Constant.DEFAULT_LANGUAGE_CODE)); + VUtils.trueThrow(Objects.equals(adminUser.getState(), UserState.ToBeActivated.getState())) + .throwMessage(STATE.PassportErr, dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_SYSTEMERROR, Constant.DICTIONARY_ITEM_ACCOUNT_HAS_EXPIRED, Constant.DEFAULT_LANGUAGE_CODE)); + SaTokenAppUtil.login(adminUser.getId(), SaLoginConfig + .setExtra("from", "admin") + .setExtra("name", adminUser.getUserName()) + .setExtra("email", adminUser.getEmail())); + SaTokenInfo tokenInfo = SaTokenAppUtil.getTokenInfo(); + return ApiResult.success(new AppLoginVO() + .setUserId(adminUser.getId()) + .setToken(tokenInfo.getTokenValue()) + .setExpire(tokenInfo.getTokenTimeout()) + .setLanguageCode(Constant.DEFAULT_LANGUAGE_CODE) + .setPlatform("admin")); + } } ///** diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/UserController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/UserController.java index f1cb0ff5..e59d6e7a 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/UserController.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/UserController.java @@ -96,7 +96,21 @@ public class UserController extends ControllerBase { **/ @GetMapping("getInfo") public ApiResult getInfo(){ - return ApiResult.success(appUserService.getInfo(AppUserUtil.getUserId())); + if (StrUtil.equals(AppUserUtil.getFrom(), "app")) { + return ApiResult.success(appUserService.getInfo(AppUserUtil.getUserId())); + } else if (StrUtil.equals(AppUserUtil.getFrom(), "admin")) { + AdminUserVO adminUser = adminUserService.getInfo(AppUserUtil.getUserId()); + return ApiResult.success(new AppUserVO() + .setId(adminUser.getId()) + .setName(adminUser.getUserName()) + .setLoginName(adminUser.getLoginName()) + .setEmail(adminUser.getEmail()) + .setAvatar(adminUser.getAvatar()) + .setPhone(adminUser.getPhone()) + .setPlatform("admin")); + } + VUtils.trueThrowBusinessError(true).throwMessage("不支持的平台:" + AppUserUtil.getFrom()); + return null; } /** diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppLoginVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppLoginVO.java index 80abf5e2..20c28f42 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppLoginVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppLoginVO.java @@ -15,4 +15,7 @@ public class AppLoginVO { //语言编码 private String languageCode; + + //平台,app或者admin + private String platform; } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppUserVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppUserVO.java index 8a8e5a75..be3f081e 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppUserVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppUserVO.java @@ -71,15 +71,20 @@ public class AppUserVO { //公司id列表 public List companyIds; + //手机号 private String phone; + //职位 private String title; + //职位id private Integer titleId; + //公司id @JsonIgnore private String companyId; + //公司id private Integer companyId1; @@ -98,4 +103,7 @@ public class AppUserVO { * 语言编码 */ private String languageCode; + + //平台,app或者admin + private String platform="app"; } 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 fda34b9f..ba226a81 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 @@ -32,6 +32,11 @@ public class AppUserUtil { return (Boolean) SaTokenAppUtil.getExtra("isPrimary"); } + public static String getFrom() { + VUtils.trueThrow(!SaTokenAppUtil.isLogin()).throwMessage(STATE.LoginError,"请重新登录"); + return (String) SaTokenAppUtil.getExtra("from"); + } + public static UserDTO getUser() { UserDTO user = new UserDTO(); user.setId(getUserId()); From 8e1b1c2f617f1c8315732f779776c229f57ba6d2 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 2/8] =?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 6956f625..1efc1c98 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 72d49e8d..2dc18859 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 @@ -184,7 +184,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(); } @@ -197,17 +197,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)) { @@ -229,8 +239,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()) @@ -337,22 +347,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 2cc5bfed..459bedb2 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 1bae2a3dea143cfbc3d54daa1a706a22b958ba07 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 3/8] =?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} From c8d6870ba71a0e453f5ddda42551d860e6096763 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 14:15:14 +0800 Subject: [PATCH 4/8] =?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 --- .../repository/mapper/TicketMapper.java | 2 +- .../service/impl/TicketServiceImpl.java | 4 +-- .../main/resources/mapper/TicketMapper.xml | 27 +++++++++++++------ 3 files changed, 22 insertions(+), 11 deletions(-) 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 8721e3c5..9d0695c1 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 @@ -25,7 +25,7 @@ public interface TicketMapper extends BaseMapper { 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); + IPage searchArea(IPage page, TicketSearchRequest request, String companyId, Integer userId,String language,Boolean isPrimary,String companyCode,String from); IPage searchFromAdmin(AdminTicketSearchRequest request, Integer userId, IPage page); 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 7daa81ff..b369383a 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 @@ -138,7 +138,7 @@ public class TicketServiceImpl extends ServiceImpl impleme 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); + return baseMapper.searchArea(new Page<>(request.getPage(), request.getPageSize()), request, null, user.getId(), language, null, null, user.getFrom()); } else { String companyCode = ""; if (!user.getIsPrimary()) { @@ -148,7 +148,7 @@ public class TicketServiceImpl extends ServiceImpl impleme } } return baseMapper.searchArea(new Page<>(request.getPage(), request.getPageSize()), request - , StrUtil.join(",", user.getCompanyIds()), user.getId(), language, user.getIsPrimary(), companyCode); + , StrUtil.join(",", user.getCompanyIds()), user.getId(), language, user.getIsPrimary(), companyCode, user.getFrom()); } } 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 bc5b04ac..9c10ec0c 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml @@ -85,9 +85,10 @@ SELECT IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),a2.`name`) AS 'areaName',true AS 'followed' - ,u.`name` AS 'createBy',true AS 'followed',t.handle,IF(LENGTH(l.language_value)>0 + ,IF(t.user_platform='admin',au.user_name,u.`name`) AS 'createBy',true AS 'followed',t.handle,IF(LENGTH(l.language_value)>0 ,l.language_value,p.part_name) AS 'component',t.* FROM ticket t LEFT JOIN app_user u ON t.user_id=u.id + LEFT JOIN admin_user au ON t.user_id=au.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=IF(#{from}='app',0,1) LEFT JOIN ticket_evaluate te ON t.id=te.ticket_id AND t.state=2 @@ -116,10 +118,11 @@ @@ -140,13 +146,14 @@ SELECT t.id,t.`no`,t.title,t.state,t.urgency,p.part_name AS 'component',t.question,t.reason ,IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),'') AS 'areaName',IF(u.is_primary,'',a2.`name`) AS 'agentAreaName' - ,d.customer_name AS 'customerName',d.agent_name AS 'agentName',u.`name` AS 'createBy',t.device_no AS 'deviceNo',t.use_time AS 'useTime' + ,d.customer_name AS 'customerName',d.agent_name AS 'agentName',IF(t.user_platform='admin',au.user_name,u.`name`) AS 'createBy',t.device_no AS 'deviceNo',t.use_time AS 'useTime' ,t.create_time AS 'createTime',t.update_time AS 'completeTime',di.name AS 'warrantyStatusDesc',d.device_type AS 'deviceType' ,d.model_no AS 'equipmentModel',d.shipment_date AS 'shipmentDate',IF(tf.id IS NULL, false, true) AS 'followed',auc.user_name AS 'cqm' ,t.solve_time AS 'closeTime',auh.user_name AS 'currentHandle',dt.cqm_person_name AS 'cqms' ,t.handle_name AS 'handle' FROM ticket t LEFT JOIN app_user u ON t.user_id=u.id + LEFT JOIN admin_user au ON t.user_id=au.id LEFT JOIN app_area a2 ON u.area_id=a2.id LEFT JOIN device d ON t.device_no=d.device_no LEFT JOIN t_base_device_type dt ON d.device_type=dt.device_type @@ -184,13 +192,14 @@ SELECT t.id,t.`no`,t.title,t.state,t.urgency,p.part_name AS 'component',t.question,t.reason ,IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),'') AS 'areaName',IF(u.is_primary,'',a2.`name`) AS 'agentAreaName' - ,d.customer_name AS 'customerName',d.agent_name AS 'agentName',u.`name` AS 'createBy',t.device_no AS 'deviceNo',t.use_time AS 'useTime' + ,d.customer_name AS 'customerName',d.agent_name AS 'agentName',IF(t.user_platform='admin',au.user_name,u.`name`) AS 'createBy',t.device_no AS 'deviceNo',t.use_time AS 'useTime' ,t.create_time AS 'createTime',t.update_time AS 'completeTime',di.name AS 'warrantyStatusDesc',true AS 'followed' ,auc.user_name AS 'cqm',t.solve_time AS 'closeTime',auh.user_name AS 'currentHandle' ,dt.cqm_person_name AS 'cqms',t.handle_name AS 'handle' FROM ticket t LEFT JOIN app_user u ON t.user_id=u.id + LEFT JOIN admin_user au ON t.user_id=au.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.user_id=#{userId} AND tf.from=1 LEFT JOIN device d ON t.device_no=d.device_no @@ -237,13 +247,14 @@ + + diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/TBasePositionMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/TBasePositionMapper.xml index fd42b69d..577e695b 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/TBasePositionMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/TBasePositionMapper.xml @@ -12,9 +12,7 @@