From f3179d65c5ecba9ce737abe3c2352ed5f9f7be4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Sun, 16 Feb 2025 21:06:08 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=80=E4=BA=9B=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/AdminUserController.java | 11 +++++++++++ .../admin/controller/TicketController.java | 4 +++- .../auth/controller/AdminController.java | 1 + .../auth/controller/AppController.java | 1 + .../cfs/controller/TiketController.java | 4 +++- .../mobilebroken/common/pojo/vo/AdminLoginVO.java | 2 ++ .../mobilebroken/common/pojo/vo/AppLoginVO.java | 2 ++ .../common/pojo/vo/AppUserForAdminVO.java | 4 ++-- .../mobilebroken/common/pojo/vo/AppUserVO.java | 4 ++-- .../mobilebroken/common/pojo/vo/TicketInfoVO.java | 6 ++++++ .../repository/service/IAdminUserService.java | 2 ++ .../service/impl/AdminUserServiceImpl.java | 14 ++++++++++++++ .../service/impl/AppUserServiceImpl.java | 9 ++++----- .../repository/service/impl/TicketServiceImpl.java | 1 + .../src/main/resources/mapper/AppUserMapper.xml | 9 ++++++--- .../src/main/resources/mapper/TicketMapper.xml | 7 ++++--- 16 files changed, 64 insertions(+), 17 deletions(-) diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AdminUserController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AdminUserController.java index b5b0a476..a3a08689 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AdminUserController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AdminUserController.java @@ -263,4 +263,15 @@ public class AdminUserController extends ControllerBase { } return ApiResult.success(); } + + /** + * 获取当前登录用户信息 + * @return 用户信息 + **/ + @GetMapping("getInfo") + @ApiMark(moduleName = "账号管理", apiName = "获取当前登录用户信息",isPublic = true) + public ApiResult getInfo() { + AdminUserVO adminUserVO = adminUserService.getInfo(AdminUserUtil.getUserId()); + return ApiResult.success(adminUserVO); + } } 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 e2d4c316..bb3fd6c9 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 @@ -379,6 +379,8 @@ public class TicketController extends ControllerBase { .setAreaName(appArea.getName()) .setCompanyName(device.getCustomerName()) .setHandle(handle) + .setSolution(ticket.getSolution()) + .setSolutionAttachments(StrUtil.isNotBlank(ticket.getSolutionAttachments()) ? StrUtil.split(ticket.getSolutionAttachments(), ",") : Collections.emptyList()) .setEvaluate(getTicketEvaluate(ticket.getId())); return ApiResult.success(vo); } @@ -462,7 +464,7 @@ public class TicketController extends ControllerBase { //推送消息 try { String zone = MultilingualUtil.getZone(); - ZoneId zoneId = ZoneId.of(Objects.isNull(zone) ? "Asia/Shanghai" : zone); + ZoneId zoneId = ZoneId.of(zone); DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN).withZone(zoneId); ChatMessageVO messageVO = new ChatMessageVO() .setId(message.getId()) diff --git a/nflg-mobilebroken-auth/src/main/java/com/nflg/mobilebroken/auth/controller/AdminController.java b/nflg-mobilebroken-auth/src/main/java/com/nflg/mobilebroken/auth/controller/AdminController.java index 9f41a12a..c124771e 100644 --- a/nflg-mobilebroken-auth/src/main/java/com/nflg/mobilebroken/auth/controller/AdminController.java +++ b/nflg-mobilebroken-auth/src/main/java/com/nflg/mobilebroken/auth/controller/AdminController.java @@ -63,6 +63,7 @@ public class AdminController extends ControllerBase { .setExtra("roles", roleCodes.stream().map(RoleVO::getCode).collect(Collectors.toList()))); SaTokenInfo tokenInfo = SaTokenAdminUtil.getTokenInfo(); return ApiResult.success(new AdminLoginVO() + .setUserId(user.getId()) .setToken(tokenInfo.getTokenValue()) .setExpire(tokenInfo.getTokenTimeout()) .setRoles(roleCodes.stream().map(RoleVO::getName).collect(Collectors.toList()))); 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 9fa146d5..c64cc3da 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 @@ -55,6 +55,7 @@ public class AppController extends ControllerBase { appUserService.updateById(user); SaTokenInfo tokenInfo = SaTokenAppUtil.getTokenInfo(); return ApiResult.success(new AppLoginVO() + .setUserId(user.getId()) .setToken(tokenInfo.getTokenValue()) .setExpire(tokenInfo.getTokenTimeout()) .setLanguageCode(user.getLanguageCode())); diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java index 9c84f7d3..e17ff8c1 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java @@ -160,7 +160,7 @@ public class TiketController extends ControllerBase { IPage datas = ticketService.search(request, AppUserUtil.getUser()); return ApiResult.success(PageUtil.convert(datas, d -> { if (StrUtil.isNotBlank(d.getHandle())) { - List adminUsers = adminUserService.listByIds(StrUtil.split(",", d.getHandle())); + List adminUsers = adminUserService.listByIds(StrUtil.split(d.getHandle(),",").stream().map(Integer::parseInt).collect(Collectors.toList())); d.setHandleBy(adminUsers.stream().map(AdminUser::getUserName).collect(Collectors.toList())); } return d; @@ -214,6 +214,8 @@ public class TiketController extends ControllerBase { .setSolveTime(ticket.getSolveTime()) .setCompanyName(company.getAgencyCompanyName()) .setHandle(handle) + .setSolution(ticket.getSolution()) + .setSolutionAttachments(StrUtil.isNotBlank(ticket.getSolutionAttachments()) ? StrUtil.split(ticket.getSolutionAttachments(), ",") : Collections.emptyList()) .setEvaluate(getTicketEvaluate(ticket.getId())); return ApiResult.success(vo); } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminLoginVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminLoginVO.java index 9e3257a0..c5a9f150 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminLoginVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AdminLoginVO.java @@ -9,6 +9,8 @@ import java.util.List; @Accessors(chain = true) public class AdminLoginVO { + private Integer userId; + private String token; private Long expire; 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 685d95b3..80abf5e2 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 @@ -7,6 +7,8 @@ import lombok.experimental.Accessors; @Accessors(chain = true) public class AppLoginVO { + private Integer userId; + private String token; private Long expire; diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppUserForAdminVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppUserForAdminVO.java index 8bf1000e..13d034bd 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppUserForAdminVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppUserForAdminVO.java @@ -77,9 +77,9 @@ public class AppUserForAdminVO { private Integer areaId; /** - * 语言 + * 语言编码 */ - private String languageName; + private String languageCode; //下级账号 private List children; 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 3241b4ad..8a8e5a75 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 @@ -95,7 +95,7 @@ public class AppUserVO { } /** - * 语言 + * 语言编码 */ - private String languageName; + private String languageCode; } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/TicketInfoVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/TicketInfoVO.java index 506aa0d0..81f3376d 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/TicketInfoVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/TicketInfoVO.java @@ -95,6 +95,12 @@ public class TicketInfoVO { //评价 private TicketEvaluateVO evaluate; + //解决方案 + private String solution; + + //解决方案附件 + private List solutionAttachments; + /** * 解决时间 */ diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminUserService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminUserService.java index e33a2ce7..a5facbc9 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminUserService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminUserService.java @@ -45,4 +45,6 @@ public interface IAdminUserService extends IService { List getByTitleCode(String titleCode); List getForAccountReview(); + + AdminUserVO getInfo(Integer userId); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminUserServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminUserServiceImpl.java index e762f443..d414a3e5 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminUserServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminUserServiceImpl.java @@ -259,6 +259,20 @@ public class AdminUserServiceImpl extends ServiceImpl impl List companyIds = lambdaQuery() .select(AppUser::getCompanyId) .eq(AppUser::getIsPrimary, true) + .ne(AppUser::getId, request.getId()) .list() .stream() .map(AppUser::getCompanyId) @@ -232,7 +233,6 @@ public class AppUserServiceImpl extends ServiceImpl impl .like(StrUtil.isNotBlank(request.getLoginName()), AppUser::getLoginName, request.getLoginName()) .like(StrUtil.isNotBlank(request.getName()), AppUser::getName, request.getName()) .page(new Page<>(request.getPage(), request.getPageSize())); - List languages= languageService.list(); return PageUtil.convert(page, d -> { AppArea area = appAreaService.getById(d.getAreaId()); String createBy = ""; @@ -261,7 +261,7 @@ public class AppUserServiceImpl extends ServiceImpl impl .setUserName(d.getName()) .setCompanyName(StrUtil.join(",", customers)) .setCompanyIds(companyIds) - .setLanguageName(languages.stream().filter(l->StrUtil.equals(l.getCode(),d.getLanguageCode())).findFirst().orElse(new Language()).getName()) + .setLanguageCode(d.getLanguageCode()) .setName(d.getName()) .setEmail(d.getEmail()) .setPhone(d.getPhone()) @@ -322,7 +322,6 @@ public class AppUserServiceImpl extends ServiceImpl impl } }); List datas = baseMapper.selectList(queryWrapper); - List languages= languageService.list(); List vos = datas.stream().map(d -> { AppArea area = appAreaService.getById(d.getAreaId()); AppUser createUser = getById(d.getCreateBy()); @@ -339,7 +338,7 @@ public class AppUserServiceImpl extends ServiceImpl impl .setCompanyName(d.getCompanyId()) .setName(d.getSalesUserName()) .setEmail(d.getEmail()) - .setLanguageName(languages.stream().filter(l->StrUtil.equals(l.getCode(),d.getLanguageCode())).findFirst().orElse(new Language()).getName()) + .setLanguageCode(d.getLanguageCode()) .setSalesUserName(d.getSalesUserName()) .setAreaName(area.getName()) .setUserState(d.getState()) @@ -369,7 +368,7 @@ public class AppUserServiceImpl extends ServiceImpl impl .setLoginName(d.getUserEmail()) .setUserName(d.getUserName()) .setCompanyName(company.getAgencyCompanyName()) - .setLanguageName(languages.stream().filter(l->StrUtil.equals(l.getCode(),d.getLanguageCode())).findFirst().orElse(new Language()).getName()) + .setLanguageCode(d.getLanguageCode()) .setName(d.getSalesUserName()) .setEmail(d.getUserEmail()) .setSalesUserName(d.getSalesUserName()) 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 5ec5000f..5c801ec1 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 @@ -153,6 +153,7 @@ public class TicketServiceImpl extends ServiceImpl impleme .noneMatch(uid->StrUtil.equals(uid, AdminUserUtil.getUserId().toString()))) .throwMessage("你无权操作该工单"); ticket.setState(TicketState.ProcessingCompleted.getState()); + ticket.setSolveTime(LocalDateTime.now()); ticket.setUpdateTime(LocalDateTime.now()); updateById(ticket); return ticket; diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/AppUserMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/AppUserMapper.xml index f235789a..9b546e57 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/AppUserMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/AppUserMapper.xml @@ -52,14 +52,13 @@ ,p.position_name AS 'title',u.expire_time AS 'expireTime',c.agency_company_name AS 'companyName',u.login_name AS 'loginName' ,u.`name`,u.email,u.avatar,a.`name` AS 'areaName',uc.`name` AS 'createBy',u.create_time AS 'createTime',uu.`name` AS 'updateBy' ,u.update_time AS 'updateTime',u.last_login_time AS 'lastLoginTime',u.expire_time AS 'expireTime',u.is_primary AS 'isPrimary' - ,IF(u.expire_time>now(),1,2) AS 'state',l.name AS 'languageName' + ,IF(u.expire_time>now(),1,2) AS 'state',u.language_code AS 'languageCode' FROM app_user u INNER JOIN t_base_customer c ON u.company_id=c.id INNER JOIN app_area a ON u.area_id=a.id LEFT JOIN app_user uc ON u.create_by=uc.id LEFT JOIN app_user uu ON u.update_by=uu.id LEFT JOIN t_base_position p ON u.title_id=p.id - LEFT JOIN language l ON u.language_code=l.code WHERE u.is_primary=false AND u.company_id=#{companyId} AND u.state = #{state} @@ -73,7 +72,11 @@ ) UNION - SELECT u.id,u.user_phone AS 'phone',0 AS 'userState',u.title_id AS 'titleId',u.area_id AS 'areaId',u.company_id AS 'companyId',p.position_name AS 'title',null AS 'expireTime',c.agency_company_name AS 'companyName',u.user_email AS 'loginName',u.user_name AS 'name',u.user_email AS 'email',u.user_avatar AS 'avatar',a.`name` AS 'areaName',uc.`name` AS 'createBy',u.create_time AS 'createTime',null AS 'updateBy',null AS 'updateTime',null AS 'lastLoginTime',null AS 'expireTime',false AS 'isPrimary',0 AS 'state' + SELECT u.id,u.user_phone AS 'phone',0 AS 'userState',u.title_id AS 'titleId',u.area_id AS 'areaId',u.company_id AS 'companyId' + ,p.position_name AS 'title',null AS 'expireTime',c.agency_company_name AS 'companyName',u.user_email AS 'loginName' + ,u.user_name AS 'name',u.user_email AS 'email',u.user_avatar AS 'avatar',a.`name` AS 'areaName',uc.`name` AS 'createBy' + ,u.create_time AS 'createTime',null AS 'updateBy',null AS 'updateTime',null AS 'lastLoginTime',null AS 'expireTime' + ,false AS 'isPrimary',0 AS 'state',u.language_code AS 'languageCode' FROM app_user_applyfor u INNER JOIN t_base_customer c ON u.company_id=c.id INNER JOIN app_area a ON u.area_id=a.id diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml index a2ae80d6..6572cc48 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml @@ -72,7 +72,8 @@