feat: 一些调整
This commit is contained in:
parent
d22fe7edec
commit
58a3d12fce
|
|
@ -5,13 +5,11 @@ import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
|
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
|
||||||
import org.springframework.context.annotation.ComponentScan;
|
import org.springframework.context.annotation.ComponentScan;
|
||||||
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
|
|
||||||
|
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
@MapperScan("com.nflg.mobilebroken.repository.mapper")
|
@MapperScan("com.nflg.mobilebroken.repository.mapper")
|
||||||
@ComponentScan(basePackages = {"com.nflg.mobilebroken.repository.service", "com.nflg.mobilebroken.admin"
|
@ComponentScan(basePackages = {"com.nflg.mobilebroken.repository.service", "com.nflg.mobilebroken.admin"
|
||||||
, "com.nflg.mobilebroken.starter"})
|
, "com.nflg.mobilebroken.starter"})
|
||||||
@EnableMongoRepositories(basePackages = "com.nflg.mobilebroken.repository.service")
|
|
||||||
@EnableDiscoveryClient
|
@EnableDiscoveryClient
|
||||||
public class AdminApplication {
|
public class AdminApplication {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,14 +39,13 @@ public class MenuController extends ControllerBase {
|
||||||
private IAdminMenuButtonApiMapService adminMenuButtonApiMapService;
|
private IAdminMenuButtonApiMapService adminMenuButtonApiMapService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取所有菜单
|
* 搜索菜单
|
||||||
*
|
* @param request 请求信息
|
||||||
* @return 菜单列表
|
|
||||||
*/
|
*/
|
||||||
@GetMapping("getAllMenu")
|
@PostMapping("searchMenu")
|
||||||
@MethodInfoMark(value = "获取所有菜单", menuName = "菜单管理")
|
@MethodInfoMark(value = "搜索菜单", menuName = "菜单管理")
|
||||||
public ApiResult<PageData<MenuVO>> getAllMenu(@RequestBody PageRequest request) {
|
public ApiResult<PageData<MenuVO>> searchMenu(@Valid @RequestBody MenuSearchRequest request) {
|
||||||
return ApiResult.success(adminMenuService.getAll(request));
|
return ApiResult.success(adminMenuService.search(request));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
package com.nflg.mobilebroken.admin.controller;
|
package com.nflg.mobilebroken.admin.controller;
|
||||||
|
|
||||||
import com.nflg.mobilebroken.common.pojo.ApiResult;
|
import com.nflg.mobilebroken.common.pojo.ApiResult;
|
||||||
|
import com.nflg.mobilebroken.common.pojo.PageData;
|
||||||
import com.nflg.mobilebroken.common.pojo.request.*;
|
import com.nflg.mobilebroken.common.pojo.request.*;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.AdminUserVO;
|
import com.nflg.mobilebroken.common.pojo.vo.AdminUserVO;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.AuthorizeMenuVO;
|
import com.nflg.mobilebroken.common.pojo.vo.AuthorizeMenuVO;
|
||||||
|
import com.nflg.mobilebroken.common.pojo.vo.RoleVO;
|
||||||
import com.nflg.mobilebroken.repository.service.*;
|
import com.nflg.mobilebroken.repository.service.*;
|
||||||
import com.nflg.mobilebroken.starter.annotation.MethodInfoMark;
|
import com.nflg.mobilebroken.starter.annotation.MethodInfoMark;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
@ -61,6 +63,17 @@ public class RoleController extends ControllerBase {
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 搜索角色
|
||||||
|
*
|
||||||
|
* @param request 请求参数
|
||||||
|
*/
|
||||||
|
@PostMapping("searchRoles")
|
||||||
|
@MethodInfoMark(value = "搜索角色", menuName = "角色管理")
|
||||||
|
public ApiResult<PageData<RoleVO>> searchRoles(@Valid @RequestBody RoleSearchRequest request) {
|
||||||
|
return ApiResult.success(adminRoleService.search(request));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 启用/禁用角色
|
* 启用/禁用角色
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -5,13 +5,11 @@ import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
|
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
|
||||||
import org.springframework.context.annotation.ComponentScan;
|
import org.springframework.context.annotation.ComponentScan;
|
||||||
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
|
|
||||||
|
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
@MapperScan("com.nflg.mobilebroken.repository.mapper")
|
@MapperScan("com.nflg.mobilebroken.repository.mapper")
|
||||||
@ComponentScan(basePackages = {"com.nflg.mobilebroken.repository.service", "com.nflg.mobilebroken.cfs"
|
@ComponentScan(basePackages = {"com.nflg.mobilebroken.repository.service", "com.nflg.mobilebroken.cfs"
|
||||||
,"com.nflg.mobilebroken.starter"})
|
,"com.nflg.mobilebroken.starter"})
|
||||||
@EnableMongoRepositories(basePackages = "com.nflg.mobilebroken.repository.service")
|
|
||||||
@EnableDiscoveryClient
|
@EnableDiscoveryClient
|
||||||
public class CfsApplication {
|
public class CfsApplication {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.nflg.mobilebroken.cfs.controller;
|
package com.nflg.mobilebroken.cfs.controller;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.nflg.mobilebroken.common.constant.TicketState;
|
import com.nflg.mobilebroken.common.constant.TicketState;
|
||||||
import com.nflg.mobilebroken.common.pojo.ApiResult;
|
import com.nflg.mobilebroken.common.pojo.ApiResult;
|
||||||
import com.nflg.mobilebroken.common.pojo.PageData;
|
import com.nflg.mobilebroken.common.pojo.PageData;
|
||||||
|
|
@ -8,9 +9,8 @@ import com.nflg.mobilebroken.common.pojo.request.*;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.*;
|
import com.nflg.mobilebroken.common.pojo.vo.*;
|
||||||
import com.nflg.mobilebroken.common.util.AppUserUtil;
|
import com.nflg.mobilebroken.common.util.AppUserUtil;
|
||||||
import com.nflg.mobilebroken.common.util.MultilingualUtil;
|
import com.nflg.mobilebroken.common.util.MultilingualUtil;
|
||||||
import com.nflg.mobilebroken.repository.entity.AppUser;
|
import com.nflg.mobilebroken.common.util.PageUtil;
|
||||||
import com.nflg.mobilebroken.repository.entity.Ticket;
|
import com.nflg.mobilebroken.repository.entity.*;
|
||||||
import com.nflg.mobilebroken.repository.entity.TicketChat;
|
|
||||||
import com.nflg.mobilebroken.repository.service.*;
|
import com.nflg.mobilebroken.repository.service.*;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
|
@ -58,6 +58,15 @@ public class TiketController extends ControllerBase {
|
||||||
@Resource
|
@Resource
|
||||||
private IDictionaryItemTranslateService dictionaryItemTranslateService;
|
private IDictionaryItemTranslateService dictionaryItemTranslateService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IAdminUserService adminUserService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IAppAreaService appAreaService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ITBaseCustomerService customerService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 搜索设备
|
* 搜索设备
|
||||||
*
|
*
|
||||||
|
|
@ -109,7 +118,14 @@ public class TiketController extends ControllerBase {
|
||||||
**/
|
**/
|
||||||
@PostMapping("searchTickets")
|
@PostMapping("searchTickets")
|
||||||
public ApiResult<PageData<TicketVO>> searchTickets(@Valid @RequestBody TicketSearchRequest request){
|
public ApiResult<PageData<TicketVO>> searchTickets(@Valid @RequestBody TicketSearchRequest request){
|
||||||
return ApiResult.success(ticketService.search(request, AppUserUtil.getUser()));
|
IPage<TicketVO> datas = ticketService.search(request, AppUserUtil.getUser());
|
||||||
|
return ApiResult.success(PageUtil.convert(datas, d -> {
|
||||||
|
if (StrUtil.isNotBlank(d.getHandle())) {
|
||||||
|
List<AdminUser> adminUsers = adminUserService.listByIds(StrUtil.split(",", d.getHandle()));
|
||||||
|
d.setHandleBy(adminUsers.stream().map(AdminUser::getUserName).collect(Collectors.toList()));
|
||||||
|
}
|
||||||
|
return d;
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -132,14 +148,19 @@ public class TiketController extends ControllerBase {
|
||||||
public ApiResult<TicketInfoVO> getTicket(@Valid @RequestParam @NotNull Integer id) {
|
public ApiResult<TicketInfoVO> getTicket(@Valid @RequestParam @NotNull Integer id) {
|
||||||
Ticket ticket = ticketService.getById(id);
|
Ticket ticket = ticketService.getById(id);
|
||||||
AppUser user = appUserService.getById(ticket.getUserId());
|
AppUser user = appUserService.getById(ticket.getUserId());
|
||||||
|
AppArea appArea = appAreaService.getById(user.getAreaId());
|
||||||
|
TBaseCustomer company = customerService.getById(Integer.valueOf(user.getCompanyId()));
|
||||||
TicketInfoVO vo = new TicketInfoVO()
|
TicketInfoVO vo = new TicketInfoVO()
|
||||||
.setId(ticket.getId())
|
.setId(ticket.getId())
|
||||||
|
.setTitle(ticket.getTitle())
|
||||||
.setDescription(ticket.getDescription())
|
.setDescription(ticket.getDescription())
|
||||||
.setState(ticket.getState())
|
.setState(ticket.getState())
|
||||||
.setAttachments(StrUtil.split(",", ticket.getAttachments()))
|
.setAttachments(StrUtil.isNotBlank(ticket.getAttachments()) ? StrUtil.split(",", ticket.getAttachments()) : Collections.emptyList())
|
||||||
.setCreateUserId(ticket.getUserId())
|
.setCreateUserId(ticket.getUserId())
|
||||||
.setCreateUserName(user.getName())
|
.setCreateUserName(user.getName())
|
||||||
.setCreateUserAvatar(user.getAvatar());
|
.setCreateUserAvatar(user.getAvatar())
|
||||||
|
.setAreaName(appArea.getName())
|
||||||
|
.setCompanyName(company.getAgencyCompanyName());
|
||||||
return ApiResult.success(vo);
|
return ApiResult.success(vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
package com.nflg.mobilebroken.common.pojo.request;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Data
|
||||||
|
public class MenuSearchRequest extends PageRequest {
|
||||||
|
|
||||||
|
//菜单名称
|
||||||
|
private String name;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
package com.nflg.mobilebroken.common.pojo.request;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Data
|
||||||
|
public class RoleSearchRequest extends PageRequest {
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
}
|
||||||
|
|
@ -3,6 +3,7 @@ package com.nflg.mobilebroken.common.pojo.vo;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
|
@ -10,6 +11,9 @@ public class MenuVO {
|
||||||
|
|
||||||
private Integer id;
|
private Integer id;
|
||||||
|
|
||||||
|
//父级菜单id
|
||||||
|
private Integer parentId;
|
||||||
|
|
||||||
// 菜单名称
|
// 菜单名称
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
|
@ -38,5 +42,5 @@ public class MenuVO {
|
||||||
private LocalDateTime updateTime;
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
//下级菜单
|
//下级菜单
|
||||||
private List<MenuVO> children;
|
private List<MenuVO> children = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
package com.nflg.mobilebroken.common.pojo.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class RoleVO {
|
||||||
|
|
||||||
|
//创建人
|
||||||
|
public String createBy;
|
||||||
|
//创建时间
|
||||||
|
public LocalDateTime createTime;
|
||||||
|
//更新人
|
||||||
|
public String updateBy;
|
||||||
|
//更新时间
|
||||||
|
public LocalDateTime updateTime;
|
||||||
|
private Integer id;
|
||||||
|
//角色编号
|
||||||
|
private String code;
|
||||||
|
//角色名称
|
||||||
|
private String name;
|
||||||
|
//是否启用
|
||||||
|
private boolean enable;
|
||||||
|
}
|
||||||
|
|
@ -30,6 +30,12 @@ public class TicketInfoVO {
|
||||||
//工单状态
|
//工单状态
|
||||||
private Byte state;
|
private Byte state;
|
||||||
|
|
||||||
|
//所属公司
|
||||||
|
private String companyName;
|
||||||
|
|
||||||
|
//所属区域
|
||||||
|
private String areaName;
|
||||||
|
|
||||||
//附件
|
//附件
|
||||||
private List<String> attachments;
|
private List<String> attachments;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
package com.nflg.mobilebroken.common.pojo.vo;
|
package com.nflg.mobilebroken.common.pojo.vo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
|
import com.nflg.mobilebroken.common.constant.TicketState;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
|
@ -31,12 +33,22 @@ public class TicketVO {
|
||||||
//创建时间
|
//创建时间
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
@JsonIgnore
|
||||||
|
private String handle;
|
||||||
|
|
||||||
//处理人
|
//处理人
|
||||||
private List<String> handleBy;
|
private List<String> handleBy;
|
||||||
|
|
||||||
|
@JsonIgnore
|
||||||
|
private byte state;
|
||||||
|
|
||||||
//工单状态
|
//工单状态
|
||||||
private String stateDesc;
|
private String stateDesc;
|
||||||
|
|
||||||
|
public String getStateDesc() {
|
||||||
|
return TicketState.findByValue(state).getDescription();
|
||||||
|
}
|
||||||
|
|
||||||
//区域名称
|
//区域名称
|
||||||
private String areaName;
|
private String areaName;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
package com.nflg.mobilebroken.repository.mapper;
|
package com.nflg.mobilebroken.repository.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.nflg.mobilebroken.common.pojo.request.RoleSearchRequest;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.ButtonVO;
|
import com.nflg.mobilebroken.common.pojo.vo.ButtonVO;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.MenuVO;
|
import com.nflg.mobilebroken.common.pojo.vo.MenuVO;
|
||||||
|
import com.nflg.mobilebroken.common.pojo.vo.RoleVO;
|
||||||
import com.nflg.mobilebroken.repository.entity.AdminRole;
|
import com.nflg.mobilebroken.repository.entity.AdminRole;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -22,4 +26,6 @@ public interface AdminRoleMapper extends BaseMapper<AdminRole> {
|
||||||
List<MenuVO> getMenusByRoleCodes(List<String> roleCodes);
|
List<MenuVO> getMenusByRoleCodes(List<String> roleCodes);
|
||||||
|
|
||||||
List<ButtonVO> getButtonsByRoleCodes(List<String> roleCodes);
|
List<ButtonVO> getButtonsByRoleCodes(List<String> roleCodes);
|
||||||
|
|
||||||
|
IPage<RoleVO> search(RoleSearchRequest request, Page<?> page);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,9 @@
|
||||||
package com.nflg.mobilebroken.repository.service;
|
package com.nflg.mobilebroken.repository.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.nflg.mobilebroken.common.pojo.PageData;
|
import com.nflg.mobilebroken.common.pojo.PageData;
|
||||||
import com.nflg.mobilebroken.common.pojo.request.EnableMenuRequest;
|
import com.nflg.mobilebroken.common.pojo.request.*;
|
||||||
import com.nflg.mobilebroken.common.pojo.request.MenuAddRequest;
|
|
||||||
import com.nflg.mobilebroken.common.pojo.request.MenuUpdateRequest;
|
|
||||||
import com.nflg.mobilebroken.common.pojo.request.PageRequest;
|
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.AuthorizeMenuVO;
|
import com.nflg.mobilebroken.common.pojo.vo.AuthorizeMenuVO;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.MenuVO;
|
import com.nflg.mobilebroken.common.pojo.vo.MenuVO;
|
||||||
import com.nflg.mobilebroken.repository.entity.AdminMenu;
|
import com.nflg.mobilebroken.repository.entity.AdminMenu;
|
||||||
|
|
@ -31,4 +29,6 @@ public interface IAdminMenuService extends IService<AdminMenu> {
|
||||||
void enableMenu(EnableMenuRequest request);
|
void enableMenu(EnableMenuRequest request);
|
||||||
|
|
||||||
List<AuthorizeMenuVO> getMenuForAuthorize(Integer roleId);
|
List<AuthorizeMenuVO> getMenuForAuthorize(Integer roleId);
|
||||||
|
|
||||||
|
IPage<MenuVO> search(MenuSearchRequest request);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,14 @@
|
||||||
package com.nflg.mobilebroken.repository.service;
|
package com.nflg.mobilebroken.repository.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.nflg.mobilebroken.common.pojo.request.EnableRoleRequest;
|
import com.nflg.mobilebroken.common.pojo.request.EnableRoleRequest;
|
||||||
import com.nflg.mobilebroken.common.pojo.request.RoleAddRequest;
|
import com.nflg.mobilebroken.common.pojo.request.RoleAddRequest;
|
||||||
|
import com.nflg.mobilebroken.common.pojo.request.RoleSearchRequest;
|
||||||
import com.nflg.mobilebroken.common.pojo.request.RoleUpdateRequest;
|
import com.nflg.mobilebroken.common.pojo.request.RoleUpdateRequest;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.ButtonVO;
|
import com.nflg.mobilebroken.common.pojo.vo.ButtonVO;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.MenuVO;
|
import com.nflg.mobilebroken.common.pojo.vo.MenuVO;
|
||||||
|
import com.nflg.mobilebroken.common.pojo.vo.RoleVO;
|
||||||
import com.nflg.mobilebroken.repository.entity.AdminRole;
|
import com.nflg.mobilebroken.repository.entity.AdminRole;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -31,4 +34,6 @@ public interface IAdminRoleService extends IService<AdminRole> {
|
||||||
List<MenuVO> getMenusByRoleCodes(List<String> roles);
|
List<MenuVO> getMenusByRoleCodes(List<String> roles);
|
||||||
|
|
||||||
List<ButtonVO> getButtonsByRoleCodes(List<String> roles);
|
List<ButtonVO> getButtonsByRoleCodes(List<String> roles);
|
||||||
|
|
||||||
|
IPage<RoleVO> search(RoleSearchRequest request);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,14 +2,13 @@ package com.nflg.mobilebroken.repository.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.nflg.mobilebroken.common.pojo.PageData;
|
import com.nflg.mobilebroken.common.pojo.PageData;
|
||||||
import com.nflg.mobilebroken.common.pojo.request.EnableMenuRequest;
|
import com.nflg.mobilebroken.common.pojo.request.*;
|
||||||
import com.nflg.mobilebroken.common.pojo.request.MenuAddRequest;
|
|
||||||
import com.nflg.mobilebroken.common.pojo.request.MenuUpdateRequest;
|
|
||||||
import com.nflg.mobilebroken.common.pojo.request.PageRequest;
|
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.AuthorizeMenuVO;
|
import com.nflg.mobilebroken.common.pojo.vo.AuthorizeMenuVO;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.MenuVO;
|
import com.nflg.mobilebroken.common.pojo.vo.MenuVO;
|
||||||
import com.nflg.mobilebroken.common.util.AdminUserUtil;
|
import com.nflg.mobilebroken.common.util.AdminUserUtil;
|
||||||
|
|
@ -27,7 +26,10 @@ import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -115,6 +117,118 @@ public class AdminMenuServiceImpl extends ServiceImpl<AdminMenuMapper, AdminMenu
|
||||||
return vos;
|
return vos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IPage<MenuVO> search(MenuSearchRequest request) {
|
||||||
|
if (StrUtil.isBlank(request.getName())) {
|
||||||
|
return getPage(request);
|
||||||
|
} else {
|
||||||
|
LambdaQueryWrapper<AdminMenu> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
if (StrUtil.isNotBlank(request.getName())) {
|
||||||
|
queryWrapper.like(AdminMenu::getName, request.getName());
|
||||||
|
}
|
||||||
|
queryWrapper.orderByDesc(AdminMenu::getId);
|
||||||
|
List<AdminMenu> list = baseMapper.selectList(queryWrapper);
|
||||||
|
//找出非根节点
|
||||||
|
List<AdminMenu> roots = list.stream().filter(l -> Objects.equals(l.getParentId(), 0)).collect(Collectors.toList());
|
||||||
|
List<MenuVO> children = convert(CollectionUtil.subtractToList(list, roots));
|
||||||
|
if (CollectionUtil.isEmpty(children)) {
|
||||||
|
return convertToPage1(roots, request.getPage(), request.getPageSize());
|
||||||
|
}
|
||||||
|
List<MenuVO> datas = new ArrayList<>();
|
||||||
|
for (MenuVO c : children) {
|
||||||
|
if (datas.stream().noneMatch(i -> i.getId().equals(c.getId()))) {
|
||||||
|
datas.add(c);
|
||||||
|
}
|
||||||
|
getParent(c, datas);
|
||||||
|
}
|
||||||
|
Iterator<MenuVO> it = datas.iterator();
|
||||||
|
while (it.hasNext()) {
|
||||||
|
MenuVO d = it.next();
|
||||||
|
MenuVO aa = datas.stream().filter(r -> Objects.equals(d.getParentId(), r.getId())).findFirst().orElse(null);
|
||||||
|
if (Objects.nonNull(aa)) {
|
||||||
|
aa.getChildren().add(d);
|
||||||
|
it.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
roots.removeIf(r -> datas.stream().map(MenuVO::getId).anyMatch(i -> i.equals(r.getId())));
|
||||||
|
if (CollectionUtil.isNotEmpty(roots)) {
|
||||||
|
datas.addAll(convert(roots));
|
||||||
|
}
|
||||||
|
datas.sort((o1, o2) -> o1.getId().compareTo(o2.getId()));
|
||||||
|
return convertToPage2(datas, request.getPage(), request.getPageSize());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void getParent(MenuVO child, List<MenuVO> datas) {
|
||||||
|
AdminMenu parent = lambdaQuery().eq(AdminMenu::getId, child.getParentId()).one();
|
||||||
|
if (Objects.nonNull(parent)) {
|
||||||
|
if (datas.stream().noneMatch(i -> i.getId().equals(parent.getId()))) {
|
||||||
|
MenuVO p = convert(parent);
|
||||||
|
datas.add(p);
|
||||||
|
getParent(p, datas);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private IPage<MenuVO> convertToPage1(List<AdminMenu> list, Integer pageNum, Integer pageSize) {
|
||||||
|
int num = (pageNum - 1) * pageSize;
|
||||||
|
if (num >= list.size()) {
|
||||||
|
return new Page<>();
|
||||||
|
}
|
||||||
|
list = list.stream().skip(num).limit(pageSize).collect(Collectors.toList());
|
||||||
|
IPage<MenuVO> page = new Page<>();
|
||||||
|
page.setRecords(convert(list));
|
||||||
|
page.setTotal(list.size());
|
||||||
|
page.setCurrent(pageNum);
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
|
||||||
|
private IPage<MenuVO> convertToPage2(List<MenuVO> list, Integer pageNum, Integer pageSize) {
|
||||||
|
int num = (pageNum - 1) * pageSize;
|
||||||
|
if (num >= list.size()) {
|
||||||
|
return new Page<>();
|
||||||
|
}
|
||||||
|
list = list.stream().skip(num).limit(pageSize).collect(Collectors.toList());
|
||||||
|
IPage<MenuVO> page = new Page<>();
|
||||||
|
page.setRecords(list);
|
||||||
|
page.setTotal(list.size());
|
||||||
|
page.setCurrent(pageNum);
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
|
||||||
|
private IPage<MenuVO> getPage(MenuSearchRequest request) {
|
||||||
|
IPage<AdminMenu> page = new Page<>();
|
||||||
|
page.setCurrent(request.getPage());
|
||||||
|
page.setSize(request.getPageSize());
|
||||||
|
lambdaQuery().eq(AdminMenu::getParentId, 0)
|
||||||
|
.orderByAsc(AdminMenu::getId)
|
||||||
|
.page(page);
|
||||||
|
List<MenuVO> datas = convert(page.getRecords());
|
||||||
|
datas.forEach(d -> d.setChildren(getChildren(d.getId())));
|
||||||
|
IPage<MenuVO> po = new Page<>();
|
||||||
|
po.setSize(page.getSize());
|
||||||
|
po.setCurrent(page.getCurrent());
|
||||||
|
po.setTotal(page.getTotal());
|
||||||
|
po.setRecords(datas);
|
||||||
|
return po;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<MenuVO> getChildren(Integer parentId) {
|
||||||
|
List<MenuVO> datas = convert(lambdaQuery().eq(AdminMenu::getParentId, parentId)
|
||||||
|
.orderByAsc(AdminMenu::getId)
|
||||||
|
.list());
|
||||||
|
datas.forEach(d -> d.setChildren(getChildren(d.getId())));
|
||||||
|
return datas;
|
||||||
|
}
|
||||||
|
|
||||||
|
private MenuVO convert(AdminMenu area) {
|
||||||
|
return Convert.convert(MenuVO.class, area);
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<MenuVO> convert(List<AdminMenu> areas) {
|
||||||
|
return Convert.toList(MenuVO.class, areas);
|
||||||
|
}
|
||||||
|
|
||||||
private Boolean menuIsSelected(Integer roleId, Integer menuId) {
|
private Boolean menuIsSelected(Integer roleId, Integer menuId) {
|
||||||
return adminRoleMenuMapService.lambdaQuery()
|
return adminRoleMenuMapService.lambdaQuery()
|
||||||
.eq(AdminRoleMenuMap::getMenuId, menuId)
|
.eq(AdminRoleMenuMap::getMenuId, menuId)
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,15 @@
|
||||||
package com.nflg.mobilebroken.repository.service.impl;
|
package com.nflg.mobilebroken.repository.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.nflg.mobilebroken.common.pojo.request.EnableRoleRequest;
|
import com.nflg.mobilebroken.common.pojo.request.EnableRoleRequest;
|
||||||
import com.nflg.mobilebroken.common.pojo.request.RoleAddRequest;
|
import com.nflg.mobilebroken.common.pojo.request.RoleAddRequest;
|
||||||
|
import com.nflg.mobilebroken.common.pojo.request.RoleSearchRequest;
|
||||||
import com.nflg.mobilebroken.common.pojo.request.RoleUpdateRequest;
|
import com.nflg.mobilebroken.common.pojo.request.RoleUpdateRequest;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.ButtonVO;
|
import com.nflg.mobilebroken.common.pojo.vo.ButtonVO;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.MenuVO;
|
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.AdminUserUtil;
|
||||||
import com.nflg.mobilebroken.repository.entity.AdminRole;
|
import com.nflg.mobilebroken.repository.entity.AdminRole;
|
||||||
import com.nflg.mobilebroken.repository.mapper.AdminRoleMapper;
|
import com.nflg.mobilebroken.repository.mapper.AdminRoleMapper;
|
||||||
|
|
@ -73,4 +77,9 @@ public class AdminRoleServiceImpl extends ServiceImpl<AdminRoleMapper, AdminRole
|
||||||
public List<ButtonVO> getButtonsByRoleCodes(List<String> roleCodes) {
|
public List<ButtonVO> getButtonsByRoleCodes(List<String> roleCodes) {
|
||||||
return baseMapper.getButtonsByRoleCodes(roleCodes);
|
return baseMapper.getButtonsByRoleCodes(roleCodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IPage<RoleVO> search(RoleSearchRequest request) {
|
||||||
|
return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -92,11 +92,11 @@ public class AppAreaServiceImpl extends ServiceImpl<AppAreaMapper, AppArea> impl
|
||||||
}
|
}
|
||||||
|
|
||||||
private IPage<AreaVO> convertToPage1(List<AppArea> list, Integer pageNum, Integer pageSize) {
|
private IPage<AreaVO> convertToPage1(List<AppArea> list, Integer pageNum, Integer pageSize) {
|
||||||
int num = pageNum * pageSize;
|
int num = (pageNum - 1) * pageSize;
|
||||||
if (num >= list.size()) {
|
if (num >= list.size()) {
|
||||||
return new Page<>();
|
return new Page<>();
|
||||||
}
|
}
|
||||||
list = list.stream().skip(num).limit(pageNum).collect(Collectors.toList());
|
list = list.stream().skip(num).limit(pageSize).collect(Collectors.toList());
|
||||||
IPage<AreaVO> page = new Page<>();
|
IPage<AreaVO> page = new Page<>();
|
||||||
page.setRecords(convert(list));
|
page.setRecords(convert(list));
|
||||||
page.setTotal(list.size());
|
page.setTotal(list.size());
|
||||||
|
|
@ -105,11 +105,11 @@ public class AppAreaServiceImpl extends ServiceImpl<AppAreaMapper, AppArea> impl
|
||||||
}
|
}
|
||||||
|
|
||||||
private IPage<AreaVO> convertToPage2(List<AreaVO> list, Integer pageNum, Integer pageSize) {
|
private IPage<AreaVO> convertToPage2(List<AreaVO> list, Integer pageNum, Integer pageSize) {
|
||||||
int num = pageNum * pageSize;
|
int num = (pageNum - 1) * pageSize;
|
||||||
if (num >= list.size()) {
|
if (num >= list.size()) {
|
||||||
return new Page<>();
|
return new Page<>();
|
||||||
}
|
}
|
||||||
list = list.stream().skip(num).limit(pageNum).collect(Collectors.toList());
|
list = list.stream().skip(num).limit(pageSize).collect(Collectors.toList());
|
||||||
IPage<AreaVO> page = new Page<>();
|
IPage<AreaVO> page = new Page<>();
|
||||||
page.setRecords(list);
|
page.setRecords(list);
|
||||||
page.setTotal(list.size());
|
page.setTotal(list.size());
|
||||||
|
|
|
||||||
|
|
@ -45,4 +45,15 @@
|
||||||
#{code}
|
#{code}
|
||||||
</foreach>
|
</foreach>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="search" resultType="com.nflg.mobilebroken.common.pojo.vo.RoleVO">
|
||||||
|
SELECT id,code,name,enable,create_by AS 'createBy',create_time AS 'createTime',update_by AS 'updateBy'
|
||||||
|
,update_time AS 'updateTime'
|
||||||
|
FROM admin_role
|
||||||
|
<where>
|
||||||
|
<if test="request.name != null and request.name != ''">
|
||||||
|
AND name LIKE CONCAT('%',#{request.name},'%')
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
|
|
@ -65,29 +65,30 @@
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="searchMy" resultType="com.nflg.mobilebroken.common.pojo.vo.TicketVO">
|
<select id="searchMy" resultType="com.nflg.mobilebroken.common.pojo.vo.TicketVO">
|
||||||
SELECT t.*,a.`name` AS 'areaName'
|
SELECT t.*,a.`name` AS 'areaName',IF(tf.id IS NULL, false, true) AS 'followed',u.`name` AS 'createBy'
|
||||||
FROM ticket t
|
FROM ticket t
|
||||||
LEFT JOIN app_user u ON t.user_id=u.id AND u.enable=1
|
LEFT JOIN app_user u ON t.user_id=u.id
|
||||||
LEFT JOIN app_area a ON u.area_id=a.id AND a.`enable`=1
|
LEFT JOIN app_area a ON u.area_id=a.id
|
||||||
|
LEFT JOIN ticket_follow tf ON t.id=tf.ticket_id
|
||||||
WHERE t.user_id=#{userId}
|
WHERE t.user_id=#{userId}
|
||||||
<include refid="searchWhereCondition"/>
|
<include refid="searchWhereCondition"/>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="searchFollow" resultType="com.nflg.mobilebroken.common.pojo.vo.TicketVO">
|
<select id="searchFollow" resultType="com.nflg.mobilebroken.common.pojo.vo.TicketVO">
|
||||||
SELECT t.*,a.`name` AS 'areaName'
|
SELECT t.*,a.`name` AS 'areaName',true AS 'followed',u.`name` AS 'createBy'
|
||||||
FROM ticket t
|
FROM ticket t
|
||||||
LEFT JOIN app_user u ON t.user_id=u.id AND u.enable=1
|
LEFT JOIN app_user u ON t.user_id=u.id
|
||||||
LEFT JOIN app_area a ON u.area_id=a.id AND a.`enable`=1
|
LEFT JOIN app_area a ON u.area_id=a.id
|
||||||
LEFT JOIN ticket_follow tf ON t.id=tf.ticket_id
|
LEFT JOIN ticket_follow tf ON t.id=tf.ticket_id
|
||||||
WHERE tf.user_id=#{userId}
|
WHERE tf.user_id=#{userId}
|
||||||
<include refid="searchWhereCondition"/>
|
<include refid="searchWhereCondition"/>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="searchArea" resultType="com.nflg.mobilebroken.common.pojo.vo.TicketVO">
|
<select id="searchArea" resultType="com.nflg.mobilebroken.common.pojo.vo.TicketVO">
|
||||||
SELECT t.*,a.`name` AS 'areaName'
|
SELECT t.*,a.`name` AS 'areaName',u.`name` AS 'createBy'
|
||||||
FROM ticket t
|
FROM ticket t
|
||||||
LEFT JOIN app_user u ON t.user_id=u.id AND u.enable=1
|
LEFT JOIN app_user u ON t.user_id=u.id
|
||||||
LEFT JOIN app_area a ON u.area_id=a.id AND a.`enable`=1
|
LEFT JOIN app_area a ON u.area_id=a.id
|
||||||
WHERE u.company_id IN
|
WHERE u.company_id IN
|
||||||
<foreach collection="companyIds" item="companyId" open="(" separator="," close=")">
|
<foreach collection="companyIds" item="companyId" open="(" separator="," close=")">
|
||||||
#{companyId}
|
#{companyId}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue