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 fa372200..711c26e4 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 @@ -484,6 +484,7 @@ public class TicketController extends ControllerBase { .setSenderName(message.getSenderName()) .setSenderAvatar(message.getSenderAvatar()) .setContent(message.getContent()) + .setTicketState(message.getTicketState()) .setCreateTime(formatter.format(message.getCreateTime())) .setImages(message.getImages()) .setAttachments(message.getAttachments()) @@ -493,6 +494,7 @@ public class TicketController extends ControllerBase { .setSenderId(message.getQuote().getSenderId()) .setSenderName(message.getQuote().getSenderName()) .setSenderAvatar(message.getQuote().getSenderAvatar()) + .setTicketState(message.getQuote().getTicketState()) .setContent(message.getQuote().getContent()) .setAttachments(message.getQuote().getAttachments()) .setImages(message.getQuote().getImages()) 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 c124771e..86cab1f6 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 @@ -6,7 +6,8 @@ import com.nflg.mobilebroken.common.constant.STATE; import com.nflg.mobilebroken.common.constant.UserState; import com.nflg.mobilebroken.common.pojo.ApiResult; import com.nflg.mobilebroken.common.pojo.vo.AdminLoginVO; -import com.nflg.mobilebroken.common.pojo.vo.PermissionsVO; +import com.nflg.mobilebroken.common.pojo.vo.ButtonVO; +import com.nflg.mobilebroken.common.pojo.vo.MenuVO; import com.nflg.mobilebroken.common.pojo.vo.RoleVO; import com.nflg.mobilebroken.common.util.AdminUserUtil; import com.nflg.mobilebroken.common.util.SaTokenAdminUtil; @@ -20,6 +21,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; @@ -80,16 +82,23 @@ public class AdminController extends ControllerBase { } /** - * 获取权限列表(菜单、按钮) + * 获取权限菜单 * @return 权限列表 */ - @GetMapping("getPermissions") - public ApiResult getPermissions() { + @GetMapping("getPermissionMenus") + public ApiResult> getPermissionMenus() { VUtils.trueThrow(!SaTokenAdminUtil.isLogin()).throwMessage(STATE.LoginError,"请重新登录"); - List roles = AdminUserUtil.getRoles(); - PermissionsVO vo = new PermissionsVO(); - vo.setMenus(adminRoleService.getMenusByRoleCodes(roles)); - vo.setButtons(adminRoleService.getButtonsByRoleCodes(roles)); - return ApiResult.success(vo); + return ApiResult.success(adminRoleService.getMenusByRoleCodes(AdminUserUtil.getUserId())); + } + + /** + * 获取权限按钮 + * @param menuId 菜单id + * @return 按钮列表 + */ + @GetMapping("getPermissionButtons") + public ApiResult> getPermissionButtons(@Valid @NotNull @RequestParam("menuId") Integer menuId){ + VUtils.trueThrow(!SaTokenAdminUtil.isLogin()).throwMessage(STATE.LoginError,"请重新登录"); + return ApiResult.success(adminRoleService.getButtonsByMenuId(AdminUserUtil.getUserId(),menuId)); } } \ No newline at end of file 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 64945788..e195b62d 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 @@ -1,6 +1,7 @@ package com.nflg.mobilebroken.cfs.controller; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DatePattern; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -30,6 +31,8 @@ import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.io.IOException; import java.time.Instant; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; @@ -307,9 +310,34 @@ public class TiketController extends ControllerBase { //推送消息 String handle = ticket.getHandle(); if (StrUtil.isNotBlank(handle)) { + String zone = MultilingualUtil.getZone(); + ZoneId zoneId = ZoneId.of(zone); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN).withZone(zoneId); + ChatMessageVO messageVO = new ChatMessageVO() + .setId(message.getId()) + .setFrom(message.getFrom()) + .setSenderId(message.getSenderId()) + .setSenderName(message.getSenderName()) + .setSenderAvatar(message.getSenderAvatar()) + .setContent(message.getContent()) + .setTicketState(message.getTicketState()) + .setCreateTime(formatter.format(message.getCreateTime())) + .setImages(message.getImages()) + .setAttachments(message.getAttachments()) + .setQuote(Objects.isNull(message.getQuote()) ? null : new ChatMessageVO() + .setId(message.getQuote().getId()) + .setFrom(message.getQuote().getFrom()) + .setSenderId(message.getQuote().getSenderId()) + .setSenderName(message.getQuote().getSenderName()) + .setSenderAvatar(message.getQuote().getSenderAvatar()) + .setTicketState(message.getQuote().getTicketState()) + .setContent(message.getQuote().getContent()) + .setAttachments(message.getQuote().getAttachments()) + .setImages(message.getQuote().getImages()) + .setCreateTime(formatter.format(message.getQuote().getCreateTime()))); SSEMessageDTO messageDTO = new SSEMessageDTO() .setType(1) - .setData(message); + .setData(messageVO); StrUtil.split(handle, ",").forEach(userId -> { try { sseManagerService.send(Integer.valueOf(userId), messageDTO); diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AuthorizeMenuVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AuthorizeMenuVO.java index 2a496ca2..fa51bc50 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AuthorizeMenuVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AuthorizeMenuVO.java @@ -11,6 +11,8 @@ public class AuthorizeMenuVO { private Integer id; + private String key; + //名称 private String name; diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdminRoleMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdminRoleMapper.java index ba59a273..4e2f7c65 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdminRoleMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdminRoleMapper.java @@ -23,9 +23,9 @@ public interface AdminRoleMapper extends BaseMapper { List getUrlsByRoleCodes(List roleCodes); - List getMenusByRoleCodes(List roleCodes); - - List getButtonsByRoleCodes(List roleCodes); + List getMenusByRoleCodes(Integer userId); IPage search(RoleSearchRequest request, Page page); + + List getButtonsByMenuId(Integer userId,Integer menuId); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminRoleService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminRoleService.java index 22aadbbd..ed449402 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminRoleService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminRoleService.java @@ -31,9 +31,9 @@ public interface IAdminRoleService extends IService { List getUrlsByRoleCodes(List roleCodes); - List getMenusByRoleCodes(List roles); - - List getButtonsByRoleCodes(List roles); + List getMenusByRoleCodes(Integer userId); IPage search(RoleSearchRequest request); + + List getButtonsByMenuId(Integer userId,Integer menuId); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminMenuServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminMenuServiceImpl.java index 1c6fb5b4..d137f4a8 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminMenuServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminMenuServiceImpl.java @@ -111,7 +111,7 @@ public class AdminMenuServiceImpl extends ServiceImpl vos = datas.stream() - .map(d -> new AuthorizeMenuVO().setType(1).setId(d.getId()).setName(d.getName()).setSelected(menuIsSelected(roleId, d.getId()))) + .map(d -> new AuthorizeMenuVO().setType(1).setId(d.getId()).setKey("menu-"+d.getId()).setName(d.getName()).setSelected(menuIsSelected(roleId, d.getId()))) .collect(Collectors.toList()); vos.forEach(v -> bindMenuChildren(roleId, v)); return vos; @@ -239,7 +239,7 @@ public class AdminMenuServiceImpl extends ServiceImpl datas = lambdaQuery().eq(AdminMenu::getParentId, menu.getId()).eq(AdminMenu::getEnable, true).list(); if (CollectionUtil.isNotEmpty(datas)) { - List vos = datas.stream().map(d -> new AuthorizeMenuVO().setType(1).setId(d.getId()).setName(d.getName())).collect(Collectors.toList()); + List vos = datas.stream().map(d -> new AuthorizeMenuVO().setType(1).setId(d.getId()).setKey("menu-"+d.getId()).setName(d.getName()).setSelected(menuIsSelected(roleId, d.getId()))).collect(Collectors.toList()); menu.setChildren(vos); vos.forEach(v -> bindMenuChildren(roleId, v)); } else { @@ -248,7 +248,7 @@ public class AdminMenuServiceImpl extends ServiceImpl new AuthorizeMenuVO().setType(2).setId(d.getId()).setName(d.getName()).setSelected(buttonIsSelected(roleId, d.getId()))) + .map(d -> new AuthorizeMenuVO().setType(2).setId(d.getId()).setKey("button-"+d.getId()).setName(d.getName()).setSelected(buttonIsSelected(roleId, d.getId()))) .collect(Collectors.toList())); } } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminRoleServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminRoleServiceImpl.java index 7150004f..5a61bc01 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminRoleServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminRoleServiceImpl.java @@ -1,6 +1,5 @@ package com.nflg.mobilebroken.repository.service.impl; -import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -21,7 +20,6 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.LocalDateTime; -import java.util.Collections; import java.util.List; import java.util.Objects; @@ -78,11 +76,8 @@ public class AdminRoleServiceImpl extends ServiceImpl getMenusByRoleCodes(List roleCodes) { - if (CollectionUtil.isEmpty(roleCodes)){ - return Collections.emptyList(); - } - List menus=baseMapper.getMenusByRoleCodes(roleCodes); + public List getMenusByRoleCodes(Integer userId) { + List menus=baseMapper.getMenusByRoleCodes(userId); for (int i = 0; i < menus.size(); i++) { MenuVO menu = menus.get(i); bindParent(menu, menus); @@ -100,16 +95,13 @@ public class AdminRoleServiceImpl extends ServiceImpl getButtonsByRoleCodes(List roleCodes) { - if (CollectionUtil.isEmpty(roleCodes)){ - return Collections.emptyList(); - } - return baseMapper.getButtonsByRoleCodes(roleCodes); - } - @Override public IPage search(RoleSearchRequest request) { return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize())); } + + @Override + public List getButtonsByMenuId(Integer userId,Integer menuId) { + return baseMapper.getButtonsByMenuId(userId,menuId); + } } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/FileUploadRecordServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/FileUploadRecordServiceImpl.java index bd39a9ed..6989c2e6 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/FileUploadRecordServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/FileUploadRecordServiceImpl.java @@ -1,7 +1,6 @@ package com.nflg.mobilebroken.repository.service.impl; import cn.hutool.core.convert.Convert; -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.pojo.PageData; @@ -36,10 +35,13 @@ public class FileUploadRecordServiceImpl extends ServiceImpl datas = lambdaQuery() .eq(Objects.nonNull(request.getSource()), FileUploadRecord::getSource, request.getSource()) .eq(Objects.nonNull(request.getFileType()), FileUploadRecord::getFileType, request.getFileType()) - .like(StrUtil.isNotBlank(request.getKey()), FileUploadRecord::getFileName, request.getKey()) - .like(StrUtil.isNotBlank(request.getKey()), FileUploadRecord::getSourceId, request.getKey()) + .and(Objects.nonNull(request.getKey()), (wq) -> wq + .like(FileUploadRecord::getFileName, request.getKey()) + .or() + .like(FileUploadRecord::getSourceId, request.getKey())) .ge(Objects.nonNull(request.getStartTime()), FileUploadRecord::getCreateTime, request.getStartTime()) .lt(Objects.nonNull(endTime), FileUploadRecord::getCreateTime, endTime) + .orderByDesc(FileUploadRecord::getId) .page(new Page<>(request.getPage(), request.getPageSize())); return PageUtil.convert(datas, d -> Convert.convert(FileVO.class, d)); } diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/AdminRoleMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/AdminRoleMapper.xml index ded67973..15e69ec8 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/AdminRoleMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/AdminRoleMapper.xml @@ -29,21 +29,8 @@ FROM admin_role r INNER JOIN admin_role_menu_map rmm ON r.id=rmm.role_id INNER JOIN admin_menu m ON rmm.menu_id=m.id - WHERE m.`enable`=1 AND r.`enable`=1 AND r.`code` IN - - #{code} - - - - + +