diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/code/UserErrorCode.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/code/UserErrorCode.java index b2dc2a42..be969528 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/code/UserErrorCode.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/code/UserErrorCode.java @@ -26,12 +26,7 @@ public enum UserErrorCode implements ErrorCode { LOGIN_STATE_INVALID(30007, "您还未登录或登录失效,请重新登录!"), - LOGIN_OTHER_DEVICE(30008, "您的账号已在其他设备登录,请重新登录"), - - USER_STATUS_ERROR(30009, "用户状态异常"), - - LOGIN_FAILED(30010, "用户名或密码错误!"), - + USER_STATUS_ERROR(30008, "用户状态异常"), ; private final int code; diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/domain/CaptchaVO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/domain/CaptchaVO.java new file mode 100644 index 00000000..6da8f6f0 --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/domain/CaptchaVO.java @@ -0,0 +1,22 @@ +package net.lab1024.smartadmin.service.common.domain; + +import lombok.Data; + +/** + * 验证码 + * + */ +@Data +public class CaptchaVO { + + /** + * 验证码UUID + */ + private String uuid; + + /** + * base64 验证码 + */ + private String code; + +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/domain/PageParamForm.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/domain/PageParam.java similarity index 93% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/domain/PageParamForm.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/domain/PageParam.java index d705c80b..5cc46b35 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/domain/PageParamForm.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/domain/PageParam.java @@ -18,7 +18,7 @@ import java.util.List; * @Date Created in 2017/10/28 16:19 */ @Data -public class PageParamForm { +public class PageParam { @ApiModelProperty(value = "页码(不能为空)", required = true, example = "1") @NotNull(message = "分页参数不能为空") @@ -35,13 +35,13 @@ public class PageParamForm { @ApiModelProperty("排序字段集合") @Size(max = 10, message = "排序字段最多10") @Valid - private List sortItemList; + private List sortItemList; /** * 排序DTO类 */ @Data - public static class SortItemDTO { + public static class SortItem { @ApiModelProperty("true正序|false倒序") @NotNull(message = "排序规则不能为空") diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/domain/PageResultDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/domain/PageResult.java similarity index 96% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/domain/PageResultDTO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/domain/PageResult.java index fee6c0d8..de445729 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/domain/PageResultDTO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/domain/PageResult.java @@ -12,7 +12,7 @@ import java.util.List; * @Date Created in 2017/10/31 15:05 */ @Data -public class PageResultDTO { +public class PageResult { /** * 当前页 diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/domain/RequestUser.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/domain/RequestUser.java new file mode 100644 index 00000000..331ae53a --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/domain/RequestUser.java @@ -0,0 +1,24 @@ +package net.lab1024.smartadmin.service.common.domain; + +/** + * @author zhuoda + * @Date 2021-11-01 + */ +public interface RequestUser { + + /** + * 请求用户id + * + * @return + */ + Long requestUserId(); + + + /** + * 请求用户名称 + * + * @return + */ + String requestUserName(); + +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/util/SmartPageUtil.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/util/SmartPageUtil.java index 4cf04582..7a634117 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/util/SmartPageUtil.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/util/SmartPageUtil.java @@ -2,8 +2,8 @@ package net.lab1024.smartadmin.service.common.util; import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import net.lab1024.smartadmin.service.common.domain.PageParamForm; -import net.lab1024.smartadmin.service.common.domain.PageResultDTO; +import net.lab1024.smartadmin.service.common.domain.PageParam; +import net.lab1024.smartadmin.service.common.domain.PageResult; import org.apache.commons.collections4.CollectionUtils; import java.util.List; @@ -23,10 +23,10 @@ public class SmartPageUtil { * @param baseDTO * @return */ - public static Page convert2PageQuery(PageParamForm baseDTO) { + public static Page convert2PageQuery(PageParam baseDTO) { Page page = new Page<>(baseDTO.getPageNum(), baseDTO.getPageSize()); // 设置排序字段 - List sortItemList = baseDTO.getSortItemList(); + List sortItemList = baseDTO.getSortItemList(); if (CollectionUtils.isNotEmpty(sortItemList)) { List orderItemList = sortItemList.stream().map(e -> new OrderItem(e.getColumn(), e.getIsAsc())).collect(Collectors.toList()); page.setOrders(orderItemList); @@ -42,7 +42,7 @@ public class SmartPageUtil { * @param targetClazz 目标类 * @return */ - public static PageResultDTO convert2PageResult(Page page, List sourceList, Class targetClazz) { + public static PageResult convert2PageResult(Page page, List sourceList, Class targetClazz) { return convert2PageResult(page, SmartBeanUtil.copyList(sourceList, targetClazz)); } @@ -53,32 +53,32 @@ public class SmartPageUtil { * @param sourceList list * @return */ - public static PageResultDTO convert2PageResult(Page page, List sourceList) { - PageResultDTO pageResultDTO = new PageResultDTO<>(); - pageResultDTO.setPageNum(page.getCurrent()); - pageResultDTO.setPageSize(page.getSize()); - pageResultDTO.setTotal(page.getTotal()); - pageResultDTO.setPages(page.getPages()); - pageResultDTO.setList(sourceList); - pageResultDTO.setEmptyFlag(CollectionUtils.isEmpty(sourceList)); - return pageResultDTO; + public static PageResult convert2PageResult(Page page, List sourceList) { + PageResult pageResult = new PageResult<>(); + pageResult.setPageNum(page.getCurrent()); + pageResult.setPageSize(page.getSize()); + pageResult.setTotal(page.getTotal()); + pageResult.setPages(page.getPages()); + pageResult.setList(sourceList); + pageResult.setEmptyFlag(CollectionUtils.isEmpty(sourceList)); + return pageResult; } /** * 转换分页结果对象 * - * @param pageResultDTO + * @param pageResult * @param targetClazz * @return */ - public static PageResultDTO convert2PageResult(PageResultDTO pageResultDTO, Class targetClazz) { - PageResultDTO newPageResultDTO = new PageResultDTO<>(); - newPageResultDTO.setPageNum(pageResultDTO.getPageNum()); - newPageResultDTO.setPageSize(pageResultDTO.getPageSize()); - newPageResultDTO.setTotal(pageResultDTO.getTotal()); - newPageResultDTO.setPages(pageResultDTO.getPages()); - newPageResultDTO.setEmptyFlag(pageResultDTO.getEmptyFlag()); - newPageResultDTO.setList(SmartBeanUtil.copyList(pageResultDTO.getList(), targetClazz)); - return newPageResultDTO; + public static PageResult convert2PageResult(PageResult pageResult, Class targetClazz) { + PageResult newPageResult = new PageResult<>(); + newPageResult.setPageNum(pageResult.getPageNum()); + newPageResult.setPageSize(pageResult.getPageSize()); + newPageResult.setTotal(pageResult.getTotal()); + newPageResult.setPages(pageResult.getPages()); + newPageResult.setEmptyFlag(pageResult.getEmptyFlag()); + newPageResult.setList(SmartBeanUtil.copyList(pageResult.getList(), targetClazz)); + return newPageResult; } } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/util/SmartEmployeeTokenUtil.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/util/SmartRequestUtil.java similarity index 78% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/util/SmartEmployeeTokenUtil.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/util/SmartRequestUtil.java index 540f3635..39d58133 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/util/SmartEmployeeTokenUtil.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/util/SmartRequestUtil.java @@ -1,7 +1,7 @@ package net.lab1024.smartadmin.service.common.util; import lombok.extern.slf4j.Slf4j; -import net.lab1024.smartadmin.service.module.system.login.domain.EmployeeLoginInfoDTO; +import net.lab1024.smartadmin.service.module.system.login.domain.RequestEmployee; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; @@ -9,16 +9,16 @@ import org.springframework.security.core.context.SecurityContextHolder; * @author 罗伊 */ @Slf4j -public class SmartEmployeeTokenUtil { +public class SmartRequestUtil { /** * 获取用户信息 * * @return */ - public static EmployeeLoginInfoDTO getRequestEmployee() { + public static RequestEmployee getRequestEmployee() { try { - return (EmployeeLoginInfoDTO) getAuthentication().getPrincipal(); + return (RequestEmployee) getAuthentication().getPrincipal(); } catch (Exception e) { log.error("获取用户信息异常:{}", e); } @@ -40,7 +40,7 @@ public class SmartEmployeeTokenUtil { * @return */ public static Long getRequestEmployeeId() { - EmployeeLoginInfoDTO requestUser = getRequestEmployee(); + RequestEmployee requestUser = getRequestEmployee(); if (null == requestUser) { return null; } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/config/DataSourceConfig.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/config/DataSourceConfig.java index 874b372e..c0dc0f7e 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/config/DataSourceConfig.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/config/DataSourceConfig.java @@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean; import lombok.extern.slf4j.Slf4j; -import net.lab1024.smartadmin.service.module.system.datascope.MyBatisPlugin; +import net.lab1024.smartadmin.service.module.support.datascope.MyBatisPlugin; import org.apache.ibatis.plugin.Interceptor; import org.apache.ibatis.session.SqlSessionFactory; import org.springframework.aop.support.DefaultPointcutAdvisor; diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/config/DateConfig.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/config/DateConfig.java index 8d653c8a..d74ee354 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/config/DateConfig.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/config/DateConfig.java @@ -19,8 +19,7 @@ import java.time.format.DateTimeParseException; /** * java8 localDate 时间类格式化配置 * - * @author listen - * @date 2019年10月18日 19:02:55 + * @author zhuoda */ @Configuration public class DateConfig { @@ -35,14 +34,14 @@ public class DateConfig { }; } + /** - * string 转为 LocalDate 配置类 + * string 转为 LocalDateTime 配置类 * - * @author Turbolisten - * @date 2020/3/6 14:34 + * @author zhuoda */ @Configuration - public static class SmartConverterStringToLocalDateTime implements Converter { + public static class StringToLocalDateTime implements Converter { @Override public LocalDateTime convert(String str) { @@ -61,14 +60,14 @@ public class DateConfig { } + /** * string 转为 LocalDate 配置类 * - * @author Turbolisten - * @date 2020/3/6 14:34 + * @author zhuoda */ @Configuration - public static class SmartConverterStringToLocalDate implements Converter { + public static class StringToLocalDate implements Converter { @Override public LocalDate convert(String str) { diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/config/AdminWebAppConfig.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/config/MvcConfig.java similarity index 90% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/config/AdminWebAppConfig.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/config/MvcConfig.java index fec4f464..a70b784e 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/config/AdminWebAppConfig.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/config/MvcConfig.java @@ -9,7 +9,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; * @Author zhuoda */ @Configuration -public class AdminWebAppConfig implements WebMvcConfigurer { +public class MvcConfig implements WebMvcConfigurer { @Override public void addViewControllers(ViewControllerRegistry registry) { diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/config/RepeatSubmitConfig.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/config/RepeatSubmitConfig.java index 6b355df5..e511ae61 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/config/RepeatSubmitConfig.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/config/RepeatSubmitConfig.java @@ -1,6 +1,6 @@ package net.lab1024.smartadmin.service.config; -import net.lab1024.smartadmin.service.common.util.SmartEmployeeTokenUtil; +import net.lab1024.smartadmin.service.common.util.SmartRequestUtil; import net.lab1024.smartadmin.service.module.support.repeatsubmit.RepeatSubmitAspect; import net.lab1024.smartadmin.service.module.support.repeatsubmit.RepeatSubmitCaffeineTicket; import org.springframework.context.annotation.Bean; @@ -38,7 +38,7 @@ public class RepeatSubmitConfig { * @return */ private String ticket(String servletPath) { - Long employeeId = SmartEmployeeTokenUtil.getRequestEmployeeId(); + Long employeeId = SmartRequestUtil.getRequestEmployeeId(); if (employeeId == null) { return ""; } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/config/SecurityConfig.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/config/SecurityConfig.java index c223d1f2..ac311361 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/config/SecurityConfig.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/config/SecurityConfig.java @@ -3,7 +3,7 @@ package net.lab1024.smartadmin.service.config; import net.lab1024.smartadmin.service.common.security.SecurityUrlMatchers; import net.lab1024.smartadmin.service.filter.SecurityTokenFilter; import net.lab1024.smartadmin.service.common.security.SecurityAuthenticationFailHandler; -import net.lab1024.smartadmin.service.module.system.login.EmployeeLoginTokenService; +import net.lab1024.smartadmin.service.module.system.login.service.JwtService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; @@ -41,7 +41,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { * 获取TOKEN 解析类 */ @Autowired - private EmployeeLoginTokenService loginTokenService; + private JwtService loginTokenService; /** * 跨域配置 diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/constant/CacheModuleConst.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/constant/CacheModuleConst.java similarity index 73% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/constant/CacheModuleConst.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/constant/CacheModuleConst.java index e8251469..fd8edb63 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/constant/CacheModuleConst.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/constant/CacheModuleConst.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.common.constant; +package net.lab1024.smartadmin.service.constant; /** * @author 罗伊 @@ -25,6 +25,10 @@ public class CacheModuleConst { public static class Department { + /** + * 部门树 + */ + public static final String DEPARTMENT_CACHE = "department_cache"; /** * 部门树 @@ -34,7 +38,11 @@ public class CacheModuleConst { /** * 某个部门以及下级的id列表 */ - public static final String DEPARTMENT_SELF_CHILDREN_ID_CACHE = "department_self_children_id_cache"; + public static final String DEPARTMENT_SELF_CHILDREN_CACHE = "department_self_children_cache"; + + public static final String DEPARTMENT_SCHOOL_CACHE = "department_school_cache"; + + public static final String DEPARTMENT_ROUTE_CACHE = "department_route_cache"; } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/constant/RedisKeyConst.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/constant/RedisKeyConst.java similarity index 74% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/constant/RedisKeyConst.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/constant/RedisKeyConst.java index dfd0c7a1..10f59581 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/common/constant/RedisKeyConst.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/constant/RedisKeyConst.java @@ -1,14 +1,13 @@ -package net.lab1024.smartadmin.service.common.constant; +package net.lab1024.smartadmin.service.constant; /** * redis key 常量类 * - * @author listen - * @date 2019/09/23 20:48 + * @author zhuoda */ public class RedisKeyConst { - public static final String PROJECT = "smart:"; + public static final String PROJECT = "sa:"; public class Support { @@ -20,6 +19,7 @@ public class RedisKeyConst { public static final String ID_GENERATOR = LOCK + "id-generator:"; + // 验证码 public static final String CAPTCHA = PROJECT + "captcha:"; } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/constant/SwaggerTagConst.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/constant/SwaggerTagConst.java new file mode 100644 index 00000000..8efe5ffd --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/constant/SwaggerTagConst.java @@ -0,0 +1,103 @@ +package net.lab1024.smartadmin.service.constant; + +/** + * [ ] + * + * @author yandanyang + * @date + */ +public class SwaggerTagConst { + + public static class Business { + + } + + + public static class System { + + public static final String MANAGER_HOME = "管理端-首页"; + + public static final String MANAGER_SYSTEM_CONFIG = "管理端-系统配置"; + + public static final String MANAGER_EMPLOYEE_LOGIN = "管理端-员工登录"; + + public static final String EMPLOYEE = "系统-员工管理"; + + public static final String DEPARTMENT = "系统-部门管理"; + + public static final String MANAGER_ROLE = "管理端-角色"; + + public static final String MANAGER_MENU = "管理端-菜单"; + + public static final String MANAGER_ROLE_MENU = "管理端-角色-菜单"; + + public static final String MANAGER_ROLE_USER = "管理端-角色用户"; + + public static final String MANAGER_ROLE_PRIVILEGE = "管理端-角色权限"; + + public static final String MANAGER_BUSINESS_OPERATE_LOG = "管理端-操作日志"; + + public static final String MANAGER_DATA_SCOPE = "管理端-数据范围"; + + public static final String MANAGER_JOB = "管理端-岗位"; + + public static final String MANAGER_NOTICE = "管理端-系统通知"; + + public static final String MANAGER_PRIVILEGE = "通用-权限"; + + public static final String MANAGER_PIC = "管理端-轮播图"; + + public static final String CATEGORY = "管理端-类目业务"; + + public static final String GOODS = "管理端-商品业务"; + + public static final String ORDER = "管理端-订单业务"; + + public static final String RECEIVE_ACCOUNT = "管理端-收款账号"; + + public static final String TABLE_COLUMN = "管理端-表格列自定义"; + + public static final String MANAGER_CLUE = "管理端-线索"; + + public static final String MANAGER_CONTRACT = "管理端-合同"; + + public static final String MANAGER_DEPARTMENT_BUSINESS = "管理端-部门业务"; + + public static final String MANAGER_EMPLOYEE_BUSINESS = "管理端-员工业务"; + + public static final String MANAGER_DATA_TRACER = "管理端-数据变动记录"; + + public static final String MANAGER_FLOW = "管理端-审批流"; + + public static final String SPEAK_SCRIPT = "管理端-话术"; + + public static final String SPEAK_SCRIPT_CATEGORY = "管理端-话术分类"; + + public static final String TAG = "管理端-标签管理"; + + public static final String SEAL = "管理端-印章管理"; + } + + public static class Support { + + public static final String AREA = "基础-地区服务"; + + public static final String FILE = "基础-文件服务"; + + public static final String CACHE = "基础-缓存"; + + public static final String SYSTEM_CONFIG = "基础-系统参数"; + + public static final String WX = "基础-微信业务"; + + public static final String SMART_RELOAD = "基础-Reload"; + + public static final String HEART_BEAT = "基础-心跳"; + + public static final String USER_OPERATE_LOG = "基础-用户操作日志"; + + public static final String PAY = "基础-支付业务"; + + public static final String SMS = "基础-短信业务"; + } +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/filter/SecurityTokenFilter.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/filter/SecurityTokenFilter.java index 243dc75a..9494cd1a 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/filter/SecurityTokenFilter.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/filter/SecurityTokenFilter.java @@ -1,7 +1,7 @@ package net.lab1024.smartadmin.service.filter; import net.lab1024.smartadmin.service.common.constant.RequestHeaderConst; -import net.lab1024.smartadmin.service.module.system.login.EmployeeLoginTokenService; +import net.lab1024.smartadmin.service.module.system.login.service.JwtService; import net.lab1024.smartadmin.service.module.system.login.domain.EmployeeLoginBO; import org.apache.commons.lang3.StringUtils; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; @@ -26,9 +26,9 @@ import java.io.IOException; public class SecurityTokenFilter extends OncePerRequestFilter { - private EmployeeLoginTokenService loginTokenService; + private JwtService loginTokenService; - public SecurityTokenFilter(EmployeeLoginTokenService loginTokenService) { + public SecurityTokenFilter(JwtService loginTokenService) { this.loginTokenService = loginTokenService; } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/listener/SmartAdminStartupRunner.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/listener/SmartAdminStartupRunner.java index fdf78696..55cf8ec8 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/listener/SmartAdminStartupRunner.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/listener/SmartAdminStartupRunner.java @@ -19,11 +19,11 @@ public class SmartAdminStartupRunner implements CommandLineRunner { @Override public void run(String... args) { - log.info("###################### init start ######################"); + log.info("###################### SmartAdmin v2.x init start ######################"); // 初始化状态码 ErrorCodeRegister.init(); - log.info("###################### init complete ######################"); + log.info("###################### SmartAdmin v2.x init complete ######################"); } } \ No newline at end of file diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/category/CategoryCacheManager.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/category/CategoryCacheManager.java index bf586e1e..dc091e9b 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/category/CategoryCacheManager.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/category/CategoryCacheManager.java @@ -2,7 +2,7 @@ package net.lab1024.smartadmin.service.module.business.category; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; -import net.lab1024.smartadmin.service.common.constant.CacheModuleConst; +import net.lab1024.smartadmin.service.constant.CacheModuleConst; import net.lab1024.smartadmin.service.common.constant.StringConst; import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; import net.lab1024.smartadmin.service.module.business.category.domain.CategoryEntity; diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/goods/GoodsController.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/goods/GoodsController.java index a4ae0f3f..d398a76d 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/goods/GoodsController.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/goods/GoodsController.java @@ -3,12 +3,12 @@ package net.lab1024.smartadmin.service.module.business.goods; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import net.lab1024.smartadmin.service.common.controller.SystemBaseController; -import net.lab1024.smartadmin.service.common.domain.PageResultDTO; +import net.lab1024.smartadmin.service.common.domain.PageResult; import net.lab1024.smartadmin.service.common.domain.ResponseDTO; import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst; import net.lab1024.smartadmin.service.module.business.goods.domain.*; import net.lab1024.smartadmin.service.module.system.login.domain.EmployeeLoginInfoDTO; -import net.lab1024.smartadmin.service.common.util.SmartEmployeeTokenUtil; +import net.lab1024.smartadmin.service.common.util.SmartRequestUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -32,7 +32,7 @@ public class GoodsController extends SystemBaseController { @ApiOperation("添加商品 by listen") @PostMapping("/goods/add") public ResponseDTO add(@RequestBody @Valid GoodsAddForm addForm) { - EmployeeLoginInfoDTO employee = SmartEmployeeTokenUtil.getRequestEmployee(); + EmployeeLoginInfoDTO employee = SmartRequestUtil.getRequestEmployee(); addForm.setUpdateId(employee.getEmployeeId()); addForm.setUpdateName(employee.getActualName()); return goodsService.add(addForm); @@ -41,7 +41,7 @@ public class GoodsController extends SystemBaseController { @ApiOperation("更新商品 by listen") @PostMapping("/goods/update") public ResponseDTO update(@RequestBody @Valid GoodsUpdateForm updateForm) { - EmployeeLoginInfoDTO employee = SmartEmployeeTokenUtil.getRequestEmployee(); + EmployeeLoginInfoDTO employee = SmartRequestUtil.getRequestEmployee(); updateForm.setUpdateId(employee.getEmployeeId()); updateForm.setUpdateName(employee.getActualName()); return goodsService.update(updateForm); @@ -50,7 +50,7 @@ public class GoodsController extends SystemBaseController { @ApiOperation("删除 by listen") @PostMapping("/goods/del") public ResponseDTO del(@RequestBody @Valid GoodsDelForm delForm) { - EmployeeLoginInfoDTO employee = SmartEmployeeTokenUtil.getRequestEmployee(); + EmployeeLoginInfoDTO employee = SmartRequestUtil.getRequestEmployee(); delForm.setUpdateId(employee.getEmployeeId()); delForm.setUpdateName(employee.getActualName()); return goodsService.del(delForm); @@ -58,7 +58,7 @@ public class GoodsController extends SystemBaseController { @ApiOperation("分页查询 by listen") @PostMapping("/goods/query") - public ResponseDTO> query(@RequestBody @Valid GoodsQueryForm queryForm) { + public ResponseDTO> query(@RequestBody @Valid GoodsQuery queryForm) { return goodsService.query(queryForm); } } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/goods/GoodsDao.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/goods/GoodsDao.java index 26b7eb5f..3b3c68fa 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/goods/GoodsDao.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/goods/GoodsDao.java @@ -34,5 +34,5 @@ public interface GoodsDao extends BaseMapper { * @param query * @return */ - List query(Page page, @Param("query") GoodsQueryForm query); + List query(Page page, @Param("query") GoodsQuery query); } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/goods/GoodsService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/goods/GoodsService.java index 82f007bd..9e6e00ee 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/goods/GoodsService.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/goods/GoodsService.java @@ -2,7 +2,7 @@ package net.lab1024.smartadmin.service.module.business.goods; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import net.lab1024.smartadmin.service.common.code.UserErrorCode; -import net.lab1024.smartadmin.service.common.domain.PageResultDTO; +import net.lab1024.smartadmin.service.common.domain.PageResult; import net.lab1024.smartadmin.service.common.domain.ResponseDTO; import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; import net.lab1024.smartadmin.service.common.util.SmartPageUtil; @@ -136,11 +136,11 @@ public class GoodsService { * @param queryForm * @return */ - public ResponseDTO> query(GoodsQueryForm queryForm) { + public ResponseDTO> query(GoodsQuery queryForm) { queryForm.setDeletedFlag(false); Page page = SmartPageUtil.convert2PageQuery(queryForm); List list = goodsDao.query(page, queryForm); - PageResultDTO pageResult = SmartPageUtil.convert2PageResult(page, list); + PageResult pageResult = SmartPageUtil.convert2PageResult(page, list); if (pageResult.getEmptyFlag()) { return ResponseDTO.ok(pageResult); } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/goods/domain/GoodsQueryForm.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/goods/domain/GoodsQuery.java similarity index 88% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/goods/domain/GoodsQueryForm.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/goods/domain/GoodsQuery.java index 0d731123..28bbbfac 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/goods/domain/GoodsQueryForm.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/goods/domain/GoodsQuery.java @@ -2,7 +2,7 @@ package net.lab1024.smartadmin.service.module.business.goods.domain; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import net.lab1024.smartadmin.service.common.domain.PageParamForm; +import net.lab1024.smartadmin.service.common.domain.PageParam; import net.lab1024.smartadmin.service.common.swagger.ApiModelPropertyEnum; import net.lab1024.smartadmin.service.module.business.goods.constant.GoodsTypeEnum; import org.hibernate.validator.constraints.Length; @@ -14,7 +14,7 @@ import org.hibernate.validator.constraints.Length; * @date 2021/8/5 14:42 */ @Data -public class GoodsQueryForm extends PageParamForm { +public class GoodsQuery extends PageParam { @ApiModelPropertyEnum(desc = "商品类型|可选", value = GoodsTypeEnum.class) private Integer goodsType; diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/NoticeController.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/NoticeController.java index 77bf07b1..f6c7fa3b 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/NoticeController.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/NoticeController.java @@ -4,13 +4,13 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst; import net.lab1024.smartadmin.service.common.controller.SystemBaseController; -import net.lab1024.smartadmin.service.common.domain.PageParamForm; -import net.lab1024.smartadmin.service.common.domain.PageResultDTO; +import net.lab1024.smartadmin.service.common.domain.PageParam; +import net.lab1024.smartadmin.service.common.domain.PageResult; import net.lab1024.smartadmin.service.common.domain.ResponseDTO; import net.lab1024.smartadmin.service.module.business.notice.domain.dto.*; import net.lab1024.smartadmin.service.module.business.notice.domain.vo.NoticeDetailVO; import net.lab1024.smartadmin.service.module.business.notice.domain.vo.NoticeVO; -import net.lab1024.smartadmin.service.common.util.SmartEmployeeTokenUtil; +import net.lab1024.smartadmin.service.common.util.SmartRequestUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -31,27 +31,27 @@ public class NoticeController extends SystemBaseController { @ApiOperation(value = "分页查询全部消息", notes = "@author 罗伊") @PostMapping("/notice/page/query") - public ResponseDTO> queryByPage(@RequestBody NoticeQueryForm queryForm) { + public ResponseDTO> queryByPage(@RequestBody NoticeQuery queryForm) { return noticeService.queryByPage(queryForm); } @ApiOperation(value = "获取已收取的所有消息", notes = "@author 罗伊") @PostMapping("/notice/receive/page/query") - public ResponseDTO> queryReceiveByPage(@RequestBody NoticeReceiveQueryForm queryForm) { - queryForm.setEmployeeId(SmartEmployeeTokenUtil.getRequestEmployeeId()); + public ResponseDTO> queryReceiveByPage(@RequestBody NoticeReceiveQuery queryForm) { + queryForm.setEmployeeId(SmartRequestUtil.getRequestEmployeeId()); return noticeService.queryReceiveByPage(queryForm); } @ApiOperation(value = "分页查询未读消息", notes = "@author 罗伊") @PostMapping("/notice/unread/page/query") - public ResponseDTO> queryUnreadByPage(@RequestBody PageParamForm queryForm) { - return noticeService.queryUnreadByPage(queryForm, SmartEmployeeTokenUtil.getRequestEmployeeId()); + public ResponseDTO> queryUnreadByPage(@RequestBody PageParam queryForm) { + return noticeService.queryUnreadByPage(queryForm, SmartRequestUtil.getRequestEmployeeId()); } @ApiOperation(value = "添加", notes = "@author 罗伊") @PostMapping("/notice/add") public ResponseDTO add(@RequestBody @Valid NoticeAddForm addForm) { - addForm.setCreateId(SmartEmployeeTokenUtil.getRequestEmployeeId()); + addForm.setCreateId(SmartRequestUtil.getRequestEmployeeId()); return noticeService.add(addForm); } @@ -76,12 +76,12 @@ public class NoticeController extends SystemBaseController { @ApiOperation(value = "发送", notes = "@author 罗伊") @GetMapping("/notice/send/{id}") public ResponseDTO send(@PathVariable("id") Long id) { - return noticeService.send(id, SmartEmployeeTokenUtil.getRequestEmployeeId()); + return noticeService.send(id, SmartRequestUtil.getRequestEmployeeId()); } @ApiOperation(value = "读取消息", notes = "@author 罗伊") @GetMapping("/notice/read/{id}") public ResponseDTO read(@PathVariable("id") Long id) { - return noticeService.read(id, SmartEmployeeTokenUtil.getRequestEmployeeId()); + return noticeService.read(id, SmartRequestUtil.getRequestEmployeeId()); } } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/NoticeService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/NoticeService.java index f956132a..2750b6cb 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/NoticeService.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/NoticeService.java @@ -2,8 +2,8 @@ package net.lab1024.smartadmin.service.module.business.notice; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import net.lab1024.smartadmin.service.common.code.UserErrorCode; -import net.lab1024.smartadmin.service.common.domain.PageParamForm; -import net.lab1024.smartadmin.service.common.domain.PageResultDTO; +import net.lab1024.smartadmin.service.common.domain.PageParam; +import net.lab1024.smartadmin.service.common.domain.PageResult; import net.lab1024.smartadmin.service.common.domain.ResponseDTO; import net.lab1024.smartadmin.service.module.business.notice.dao.NoticeDao; import net.lab1024.smartadmin.service.module.business.notice.dao.NoticeReceiveRecordDao; @@ -42,12 +42,12 @@ public class NoticeService { * @description 分页查询 * @date 2019-07-11 16:19:48 */ - public ResponseDTO> queryByPage(NoticeQueryForm queryForm) { + public ResponseDTO> queryByPage(NoticeQuery queryForm) { queryForm.setDeletedFlag(false); Page page = SmartPageUtil.convert2PageQuery(queryForm); List dtoList = noticeDao.queryByPage(page, queryForm); - PageResultDTO pageResultDTO = SmartPageUtil.convert2PageResult(page, dtoList); - return ResponseDTO.ok(pageResultDTO); + PageResult pageResult = SmartPageUtil.convert2PageResult(page, dtoList); + return ResponseDTO.ok(pageResult); } /** @@ -56,7 +56,7 @@ public class NoticeService { * @param queryForm * @return */ - public ResponseDTO> queryReceiveByPage(NoticeReceiveQueryForm queryForm) { + public ResponseDTO> queryReceiveByPage(NoticeReceiveQuery queryForm) { queryForm.setSendStatus(true); Page page = SmartPageUtil.convert2PageQuery(queryForm); List dtoList = noticeDao.queryReceiveByPage(page, queryForm); @@ -64,8 +64,8 @@ public class NoticeService { dtoList.forEach(e -> { e.setReadStatus(e.getReceiveTime() != null); }); - PageResultDTO pageResultDTO = SmartPageUtil.convert2PageResult(page, dtoList); - return ResponseDTO.ok(pageResultDTO); + PageResult pageResult = SmartPageUtil.convert2PageResult(page, dtoList); + return ResponseDTO.ok(pageResult); } /** @@ -74,11 +74,11 @@ public class NoticeService { * @param queryForm * @return */ - public ResponseDTO> queryUnreadByPage(PageParamForm queryForm, Long employeeId) { + public ResponseDTO> queryUnreadByPage(PageParam queryForm, Long employeeId) { Page page = SmartPageUtil.convert2PageQuery(queryForm); List dtoList = noticeDao.queryUnreadByPage(page, employeeId, true); - PageResultDTO pageResultDTO = SmartPageUtil.convert2PageResult(page, dtoList); - return ResponseDTO.ok(pageResultDTO); + PageResult pageResult = SmartPageUtil.convert2PageResult(page, dtoList); + return ResponseDTO.ok(pageResult); } /** diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/dao/NoticeDao.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/dao/NoticeDao.java index 402e9e45..b45f4cfc 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/dao/NoticeDao.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/dao/NoticeDao.java @@ -2,16 +2,16 @@ package net.lab1024.smartadmin.service.module.business.notice.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import net.lab1024.smartadmin.service.module.business.notice.domain.dto.NoticeQueryForm; +import net.lab1024.smartadmin.service.module.business.notice.domain.dto.NoticeQuery; import net.lab1024.smartadmin.service.module.business.notice.domain.dto.NoticeReadCountDTO; import net.lab1024.smartadmin.service.module.business.notice.domain.dto.NoticeReceiveForm; -import net.lab1024.smartadmin.service.module.business.notice.domain.dto.NoticeReceiveQueryForm; +import net.lab1024.smartadmin.service.module.business.notice.domain.dto.NoticeReceiveQuery; import net.lab1024.smartadmin.service.module.business.notice.domain.entity.NoticeEntity; import net.lab1024.smartadmin.service.module.business.notice.domain.vo.NoticeDetailVO; import net.lab1024.smartadmin.service.module.business.notice.domain.vo.NoticeVO; -import net.lab1024.smartadmin.service.module.system.datascope.anno.DataScope; -import net.lab1024.smartadmin.service.module.system.datascope.constant.DataScopeTypeEnum; -import net.lab1024.smartadmin.service.module.system.datascope.constant.DataScopeWhereInTypeEnum; +import net.lab1024.smartadmin.service.module.support.datascope.DataScope; +import net.lab1024.smartadmin.service.module.support.datascope.constant.DataScopeTypeEnum; +import net.lab1024.smartadmin.service.module.support.datascope.constant.DataScopeWhereInTypeEnum; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Component; @@ -34,7 +34,7 @@ public interface NoticeDao extends BaseMapper { * @return NoticeEntity */ @DataScope(dataScopeType = DataScopeTypeEnum.NOTICE, joinSql = "n.create_user in (#employeeIds)", whereInType = DataScopeWhereInTypeEnum.EMPLOYEE) - List queryByPage(Page page, @Param("query") NoticeQueryForm query); + List queryByPage(Page page, @Param("query") NoticeQuery query); /** @@ -55,7 +55,7 @@ public interface NoticeDao extends BaseMapper { * @param query * @return */ - List queryReceiveByPage(Page page, @Param("query") NoticeReceiveQueryForm query); + List queryReceiveByPage(Page page, @Param("query") NoticeReceiveQuery query); /** * 详情 diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/domain/dto/NoticeQueryForm.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/domain/dto/NoticeQuery.java similarity index 80% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/domain/dto/NoticeQueryForm.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/domain/dto/NoticeQuery.java index da68aa07..ec771dff 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/domain/dto/NoticeQueryForm.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/domain/dto/NoticeQuery.java @@ -2,7 +2,7 @@ package net.lab1024.smartadmin.service.module.business.notice.domain.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import net.lab1024.smartadmin.service.common.domain.PageParamForm; +import net.lab1024.smartadmin.service.common.domain.PageParam; /** * [ ] @@ -10,7 +10,7 @@ import net.lab1024.smartadmin.service.common.domain.PageParamForm; * @author 罗伊 */ @Data -public class NoticeQueryForm extends PageParamForm { +public class NoticeQuery extends PageParam { @ApiModelProperty("开始日期") diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/domain/dto/NoticeReceiveQueryForm.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/domain/dto/NoticeReceiveQuery.java similarity index 84% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/domain/dto/NoticeReceiveQueryForm.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/domain/dto/NoticeReceiveQuery.java index 7f62c0e9..fc8dd688 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/domain/dto/NoticeReceiveQueryForm.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/business/notice/domain/dto/NoticeReceiveQuery.java @@ -9,7 +9,7 @@ import lombok.Data; * @author 罗伊 */ @Data -public class NoticeReceiveQueryForm extends NoticeQueryForm { +public class NoticeReceiveQuery extends NoticeQuery { @ApiModelProperty(hidden = true) private Long employeeId; diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemcache/SystemCacheController.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/cache/CacheController.java similarity index 90% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemcache/SystemCacheController.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/cache/CacheController.java index baada088..d124ec85 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemcache/SystemCacheController.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/cache/CacheController.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.module.system.systemcache; +package net.lab1024.smartadmin.service.module.support.cache; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -19,10 +19,10 @@ import java.util.List; */ @RestController @Api(tags = {SwaggerTagConst.Admin.MANAGER_SYSTEM_CACHE}) -public class SystemCacheController { +public class CacheController { @Autowired - private SystemCacheService systemCacheService; + private CacheService systemCacheService; @ApiOperation(value = "获取所有缓存", notes = "@author 罗伊") @GetMapping("/cache/names") diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemcache/SystemCacheService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/cache/CacheService.java similarity index 90% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemcache/SystemCacheService.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/cache/CacheService.java index d9805637..f9fab318 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemcache/SystemCacheService.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/cache/CacheService.java @@ -1,8 +1,7 @@ -package net.lab1024.smartadmin.service.module.system.systemcache; +package net.lab1024.smartadmin.service.module.support.cache; import com.google.common.collect.Lists; import net.lab1024.smartadmin.service.module.support.reload.core.annoation.SmartReload; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.caffeine.CaffeineCache; import org.springframework.cache.caffeine.CaffeineCacheManager; import org.springframework.stereotype.Service; @@ -19,7 +18,7 @@ import java.util.stream.Collectors; * @date 2021/10/11 20:07 */ @Service -public class SystemCacheService { +public class CacheService { @Resource private CaffeineCacheManager caffeineCacheManager; diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/captcha/CaptchaService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/captcha/CaptchaService.java index 3341960f..5caba21a 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/captcha/CaptchaService.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/captcha/CaptchaService.java @@ -5,7 +5,7 @@ import lombok.extern.slf4j.Slf4j; import net.lab1024.smartadmin.service.common.code.SystemErrorCode; import net.lab1024.smartadmin.service.common.code.UserErrorCode; import net.lab1024.smartadmin.service.common.constant.StringConst; -import net.lab1024.smartadmin.service.common.constant.RedisKeyConst; +import net.lab1024.smartadmin.service.constant.RedisKeyConst; import net.lab1024.smartadmin.service.common.domain.ResponseDTO; import net.lab1024.smartadmin.service.module.support.captcha.domain.CaptchaVO; import net.lab1024.smartadmin.service.third.SmartRedisService; diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/anno/DataScope.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/DataScope.java similarity index 69% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/anno/DataScope.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/DataScope.java index fe88cb49..8a89f816 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/anno/DataScope.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/DataScope.java @@ -1,9 +1,9 @@ -package net.lab1024.smartadmin.service.module.system.datascope.anno; +package net.lab1024.smartadmin.service.module.support.datascope; -import net.lab1024.smartadmin.service.module.system.datascope.constant.DataScopeTypeEnum; -import net.lab1024.smartadmin.service.module.system.datascope.constant.DataScopeWhereInTypeEnum; -import net.lab1024.smartadmin.service.module.system.datascope.strategy.DataScopePowerStrategy; +import net.lab1024.smartadmin.service.module.support.datascope.constant.DataScopeTypeEnum; +import net.lab1024.smartadmin.service.module.support.datascope.constant.DataScopeWhereInTypeEnum; +import net.lab1024.smartadmin.service.module.support.datascope.strategy.DataScopePowerStrategy; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; @@ -13,7 +13,12 @@ import java.lang.annotation.Target; /** * [ 数据范围 ] * - * @author 罗伊 + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/DataScopeController.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/DataScopeController.java new file mode 100644 index 00000000..64380548 --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/DataScopeController.java @@ -0,0 +1,40 @@ +package net.lab1024.smartadmin.service.module.support.datascope; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import net.lab1024.smartadmin.service.common.controller.SupportBaseController; +import net.lab1024.smartadmin.service.common.domain.ResponseDTO; +import net.lab1024.smartadmin.service.constant.SwaggerTagConst; +import net.lab1024.smartadmin.service.module.support.datascope.domain.dto.DataScopeAndViewTypeVO; +import net.lab1024.smartadmin.service.module.support.datascope.service.DataScopeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/27 0027 下午 15:12 + * @since JDK1.8 + */ +@Api(tags = {SwaggerTagConst.System.MANAGER_ROLE}) +@RestController +public class DataScopeController extends SupportBaseController { + + @Autowired + private DataScopeService dataScopeService; + + @ApiOperation(value = "获取当前系统所配置的所有数据范围") + @GetMapping("/dataScope/list") + public ResponseDTO> dataScopeList() { + return dataScopeService.dataScopeList(); + } + + +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/MyBatisPlugin.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/MyBatisPlugin.java similarity index 90% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/MyBatisPlugin.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/MyBatisPlugin.java index a75f9a7a..486ad5ec 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/MyBatisPlugin.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/MyBatisPlugin.java @@ -1,15 +1,16 @@ -package net.lab1024.smartadmin.service.module.system.datascope; +package net.lab1024.smartadmin.service.module.support.datascope; import com.google.common.collect.Maps; -import net.lab1024.smartadmin.service.module.system.datascope.domain.dto.DataScopeSqlConfigDTO; -import net.lab1024.smartadmin.service.module.system.datascope.service.DataScopeSqlConfigService; -import net.lab1024.smartadmin.service.third.SmartApplicationContext; import net.lab1024.smartadmin.service.common.util.SmartStringUtil; +import net.lab1024.smartadmin.service.module.support.datascope.domain.dto.DataScopeSqlConfigDTO; +import net.lab1024.smartadmin.service.module.support.datascope.service.DataScopeSqlConfigService; import org.apache.commons.lang3.StringUtils; import org.apache.ibatis.mapping.*; import org.apache.ibatis.plugin.*; import org.apache.ibatis.session.ResultHandler; import org.apache.ibatis.session.RowBounds; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Component; import java.util.List; @@ -19,12 +20,20 @@ import java.util.Properties; /** * [ mybaits sql 拦截 ] * - * @author 罗伊 + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 */ @Intercepts({@Signature(type = org.apache.ibatis.executor.Executor.class, method = "query", args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class})}) @Component public class MyBatisPlugin implements Interceptor { + @Autowired + private ApplicationContext applicationContext; + @Override public Object intercept(Invocation invocation) throws Throwable { @@ -110,7 +119,7 @@ public class MyBatisPlugin implements Interceptor { } public DataScopeSqlConfigService dataScopeSqlConfigService() { - return (DataScopeSqlConfigService) SmartApplicationContext.getBean("dataScopeSqlConfigService"); + return (DataScopeSqlConfigService) applicationContext.getBean("dataScopeSqlConfigService"); } public class BoundSqlSqlSource implements SqlSource { diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/constant/DataScopeTypeEnum.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/constant/DataScopeTypeEnum.java new file mode 100644 index 00000000..ef636c5d --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/constant/DataScopeTypeEnum.java @@ -0,0 +1,68 @@ +package net.lab1024.smartadmin.service.module.support.datascope.constant; + + +import net.lab1024.smartadmin.service.common.enumeration.BaseEnum; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/28 0028 下午 15:37 + * @since JDK1.8 + */ +public enum DataScopeTypeEnum implements BaseEnum { + + CLUE_USER(1, 1, "线索", "线索数据范围"), + CLUE_USER_TRACK(2, 2, "线索跟进", "线索跟进记录"), + CLUE_PUBLIC_USER(3, 3, "公海线索", "公海线索数据范围"), + CLUE_INVALID_USER(4, 4, "无效线索", "无效线索数据范围"), + + CONTRACT(11, 5, "合同", "合同数据范围"), + + ORDER(21, 10, "订单", "订单数据范围"), + RECEIVE_ORDER(22, 11, "收款单", "收款单数据范围"), + REFUND_ORDER(23, 12, "退款单", "退款单数据范围"), + + EMPLOYEE_SALES_RANK(31, 15, "员工业绩排行", "员工业绩排行数据范围"), + + NOTICE(41, 20, "系统通知", "系统通知数据范围"), + ; + + private Integer value; + + private Integer sort; + + private String name; + + private String desc; + + DataScopeTypeEnum(Integer value, Integer sort, String name, String desc) { + this.value = value; + this.sort = sort; + this.name = name; + this.desc = desc; + } + + @Override + public Integer getValue() { + return value; + } + + public Integer getSort() { + return sort; + } + + @Override + public String getDesc() { + return desc; + } + + public String getName() { + return name; + } + + +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/constant/DataScopeViewTypeEnum.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/constant/DataScopeViewTypeEnum.java new file mode 100644 index 00000000..2d58c1c1 --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/constant/DataScopeViewTypeEnum.java @@ -0,0 +1,55 @@ +package net.lab1024.smartadmin.service.module.support.datascope.constant; + + +import net.lab1024.smartadmin.service.common.enumeration.BaseEnum; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/28 0028 下午 15:37 + * @since JDK1.8 + */ +public enum DataScopeViewTypeEnum implements BaseEnum { + + ME(0, 0, "本人"), + + DEPARTMENT(1, 5, "本部门"), + + DEPARTMENT_AND_SUB(2, 10, "本部门及下属子部门"), + + SCHOOL(3, 15, "本校区"), + + ALL(10, 100, "全部"); + + + + private Integer value; + private Integer level; + private String desc; + + DataScopeViewTypeEnum(Integer value, Integer level, String desc) { + this.value = value; + this.level = level; + this.desc = desc; + } + + @Override + public Integer getValue() { + return value; + } + + public Integer getLevel() { + return level; + } + + @Override + public String getDesc() { + return desc; + } + + +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/constant/DataScopeWhereInTypeEnum.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/constant/DataScopeWhereInTypeEnum.java new file mode 100644 index 00000000..fad457d5 --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/constant/DataScopeWhereInTypeEnum.java @@ -0,0 +1,43 @@ +package net.lab1024.smartadmin.service.module.support.datascope.constant; + + +import net.lab1024.smartadmin.service.common.enumeration.BaseEnum; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/5/8 0008 下午 16:00 + * @since JDK1.8 + */ +public enum DataScopeWhereInTypeEnum implements BaseEnum { + + EMPLOYEE(0, "以员工IN"), + + DEPARTMENT(1, "以部门IN"), + + CUSTOM_STRATEGY(2, "自定义策略"); + + private Integer value; + private String desc; + + DataScopeWhereInTypeEnum(Integer value, String desc) { + this.value = value; + this.desc = desc; + } + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDesc() { + return desc; + } + + +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/dto/DataScopeAndViewTypeVO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/domain/dto/DataScopeAndViewTypeVO.java similarity index 69% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/dto/DataScopeAndViewTypeVO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/domain/dto/DataScopeAndViewTypeVO.java index 7ea77d2c..c2978846 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/dto/DataScopeAndViewTypeVO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/domain/dto/DataScopeAndViewTypeVO.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.module.system.datascope.domain.dto; +package net.lab1024.smartadmin.service.module.support.datascope.domain.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -8,7 +8,12 @@ import java.util.List; /** * [ ] * - * @author 罗伊 + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/27 0027 下午 16:37 + * @since JDK1.8 */ @Data public class DataScopeAndViewTypeVO { diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/dto/DataScopeDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/domain/dto/DataScopeDTO.java similarity index 64% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/dto/DataScopeDTO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/domain/dto/DataScopeDTO.java index 653239d6..4165c0ce 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/dto/DataScopeDTO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/domain/dto/DataScopeDTO.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.module.system.datascope.domain.dto; +package net.lab1024.smartadmin.service.module.support.datascope.domain.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Builder; @@ -7,7 +7,12 @@ import lombok.Data; /** * [ ] * - * @author 罗伊 + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/27 0027 下午 16:37 + * @since JDK1.8 */ @Data @Builder diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/dto/DataScopeSqlConfigDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/domain/dto/DataScopeSqlConfigDTO.java similarity index 54% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/dto/DataScopeSqlConfigDTO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/domain/dto/DataScopeSqlConfigDTO.java index ef9091bf..f13bde51 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/dto/DataScopeSqlConfigDTO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/domain/dto/DataScopeSqlConfigDTO.java @@ -1,13 +1,18 @@ -package net.lab1024.smartadmin.service.module.system.datascope.domain.dto; +package net.lab1024.smartadmin.service.module.support.datascope.domain.dto; import lombok.Data; -import net.lab1024.smartadmin.service.module.system.datascope.constant.DataScopeTypeEnum; -import net.lab1024.smartadmin.service.module.system.datascope.constant.DataScopeWhereInTypeEnum; +import net.lab1024.smartadmin.service.module.support.datascope.constant.DataScopeTypeEnum; +import net.lab1024.smartadmin.service.module.support.datascope.constant.DataScopeWhereInTypeEnum; /** * [ ] * - * @author 罗伊 + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/28 0028 下午 17:21 + * @since JDK1.8 */ @Data public class DataScopeSqlConfigDTO { diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/dto/DataScopeViewTypeVO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/domain/dto/DataScopeViewTypeVO.java similarity index 61% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/dto/DataScopeViewTypeVO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/domain/dto/DataScopeViewTypeVO.java index eb9744c2..f8276b01 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/dto/DataScopeViewTypeVO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/domain/dto/DataScopeViewTypeVO.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.module.system.datascope.domain.dto; +package net.lab1024.smartadmin.service.module.support.datascope.domain.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Builder; @@ -7,7 +7,12 @@ import lombok.Data; /** * [ ] * - * @author 罗伊 + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/28 0028 下午 15:41 + * @since JDK1.8 */ @Data @Builder diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/entity/DataScopeRoleEntity.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/domain/entity/DataScopeRoleEntity.java similarity index 62% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/entity/DataScopeRoleEntity.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/domain/entity/DataScopeRoleEntity.java index 961f77e5..67c506c9 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/entity/DataScopeRoleEntity.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/domain/entity/DataScopeRoleEntity.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.module.system.datascope.domain.entity; +package net.lab1024.smartadmin.service.module.support.datascope.domain.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; @@ -10,7 +10,12 @@ import java.time.LocalDateTime; /** * [ 数据范围与角色关系 ] * - * @author 罗伊 + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/27 0027 下午 14:43 + * @since JDK1.8 */ @Data @TableName("t_role_data_scope") @@ -20,19 +25,16 @@ public class DataScopeRoleEntity { */ @TableId(type = IdType.AUTO) private Long id; - /** * 数据范围id - * {@link net.lab1024.smartadmin.service.module.system.datascope.constant.DataScopeTypeEnum} + * {@link net.lab1024.smartadmin.service.module.support.datascope.constant.DataScopeTypeEnum} */ private Integer dataScopeType; - /** * 数据范围类型 - * {@link net.lab1024.smartadmin.service.module.system.datascope.constant.DataScopeViewTypeEnum} + * {@link net.lab1024.smartadmin.service.module.support.datascope.constant.DataScopeViewTypeEnum} */ private Integer viewType; - /** * 角色id */ diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/service/DataScopeService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/service/DataScopeService.java new file mode 100644 index 00000000..b1986cd9 --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/service/DataScopeService.java @@ -0,0 +1,76 @@ +package net.lab1024.smartadmin.service.module.support.datascope.service; + +import com.google.common.collect.Lists; +import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; +import org.springframework.stereotype.Service; +import net.lab1024.smartadmin.service.common.domain.ResponseDTO; +import net.lab1024.smartadmin.service.module.support.datascope.constant.DataScopeTypeEnum; +import net.lab1024.smartadmin.service.module.support.datascope.constant.DataScopeViewTypeEnum; +import net.lab1024.smartadmin.service.module.support.datascope.domain.dto.DataScopeAndViewTypeVO; +import net.lab1024.smartadmin.service.module.support.datascope.domain.dto.DataScopeDTO; +import net.lab1024.smartadmin.service.module.support.datascope.domain.dto.DataScopeViewTypeVO; + +import java.util.Comparator; +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/27 0027 下午 14:52 + * @since JDK1.8 + */ +@Service +public class DataScopeService { + + /** + * 获取所有可以进行数据范围配置的信息 + * + * @return + */ + public ResponseDTO> dataScopeList() { + List dataScopeList = this.getDataScopeType(); + List dataScopeAndTypeList = SmartBeanUtil.copyList(dataScopeList, DataScopeAndViewTypeVO.class); + List typeList = this.getViewType(); + dataScopeAndTypeList.forEach(e -> { + e.setViewTypeList(typeList); + }); + return ResponseDTO.ok(dataScopeAndTypeList); + } + + /** + * 获取当前系统存在的数据可见范围 + * + * @return + */ + public List getViewType() { + List viewTypeList = Lists.newArrayList(); + DataScopeViewTypeEnum[] enums = DataScopeViewTypeEnum.class.getEnumConstants(); + DataScopeViewTypeVO dataScopeViewTypeDTO; + for (DataScopeViewTypeEnum viewTypeEnum : enums) { + dataScopeViewTypeDTO = DataScopeViewTypeVO.builder().viewType(viewTypeEnum.getValue()).viewTypeLevel(viewTypeEnum.getLevel()).viewTypeName(viewTypeEnum.getDesc()).build(); + viewTypeList.add(dataScopeViewTypeDTO); + } + Comparator comparator = (h1, h2) -> h1.getViewTypeLevel().compareTo(h2.getViewTypeLevel()); + viewTypeList.sort(comparator); + return viewTypeList; + } + + public List getDataScopeType() { + List dataScopeTypeList = Lists.newArrayList(); + DataScopeTypeEnum[] enums = DataScopeTypeEnum.class.getEnumConstants(); + DataScopeDTO dataScopeDTO; + for (DataScopeTypeEnum typeEnum : enums) { + dataScopeDTO = + DataScopeDTO.builder().dataScopeType(typeEnum.getValue()).dataScopeTypeDesc(typeEnum.getDesc()).dataScopeTypeName(typeEnum.getName()).dataScopeTypeSort(typeEnum.getSort()).build(); + dataScopeTypeList.add(dataScopeDTO); + } + Comparator comparator = (h1, h2) -> h1.getDataScopeTypeSort().compareTo(h2.getDataScopeTypeSort()); + dataScopeTypeList.sort(comparator); + return dataScopeTypeList; + } + +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/service/DataScopeSqlConfigService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/service/DataScopeSqlConfigService.java similarity index 81% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/service/DataScopeSqlConfigService.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/service/DataScopeSqlConfigService.java index 68af5077..cd795d7f 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/service/DataScopeSqlConfigService.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/service/DataScopeSqlConfigService.java @@ -1,14 +1,7 @@ -package net.lab1024.smartadmin.service.module.system.datascope.service; +package net.lab1024.smartadmin.service.module.support.datascope.service; import lombok.extern.slf4j.Slf4j; -import net.lab1024.smartadmin.service.module.system.datascope.anno.DataScope; -import net.lab1024.smartadmin.service.module.system.datascope.constant.DataScopeTypeEnum; -import net.lab1024.smartadmin.service.module.system.datascope.constant.DataScopeViewTypeEnum; -import net.lab1024.smartadmin.service.module.system.datascope.constant.DataScopeWhereInTypeEnum; -import net.lab1024.smartadmin.service.module.system.datascope.domain.dto.DataScopeSqlConfigDTO; -import net.lab1024.smartadmin.service.module.system.datascope.strategy.DataScopePowerStrategy; -import net.lab1024.smartadmin.service.third.SmartApplicationContext; -import net.lab1024.smartadmin.service.common.util.SmartEmployeeTokenUtil; +import net.lab1024.smartadmin.service.common.util.SmartRequestUtil; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.reflections.Reflections; @@ -17,7 +10,14 @@ import org.reflections.util.ClasspathHelper; import org.reflections.util.ConfigurationBuilder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Service; +import net.lab1024.smartadmin.service.module.support.datascope.DataScope; +import net.lab1024.smartadmin.service.module.support.datascope.constant.DataScopeTypeEnum; +import net.lab1024.smartadmin.service.module.support.datascope.constant.DataScopeViewTypeEnum; +import net.lab1024.smartadmin.service.module.support.datascope.constant.DataScopeWhereInTypeEnum; +import net.lab1024.smartadmin.service.module.support.datascope.domain.dto.DataScopeSqlConfigDTO; +import net.lab1024.smartadmin.service.module.support.datascope.strategy.DataScopePowerStrategy; import javax.annotation.PostConstruct; import java.lang.reflect.Method; @@ -29,20 +29,17 @@ import java.util.concurrent.ConcurrentHashMap; /** * [ ] * - * @author 罗伊 + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/29 0029 上午 10:12 + * @since JDK1.8 */ @Slf4j @Service public class DataScopeSqlConfigService { - private ConcurrentHashMap dataScopeMethodMap = new ConcurrentHashMap<>(); - - @Autowired - private DataScopeViewService dataScopeViewService; - - @Value("${project.module}") - private String scanPackage; - /** * 注解joinsql 参数 */ @@ -50,6 +47,18 @@ public class DataScopeSqlConfigService { private static final String DEPARTMENT_PARAM = "#departmentIds"; + private ConcurrentHashMap dataScopeMethodMap = new ConcurrentHashMap<>(); + + @Autowired + private DataScopeViewService dataScopeViewService; + + @Value("${swagger.packAge}") + private String scanPackage; + + @Autowired + private ApplicationContext applicationContext; + + @PostConstruct private void initDataScopeMethodMap() { this.refreshDataScopeMethodMap(); @@ -99,7 +108,7 @@ public class DataScopeSqlConfigService { public String getJoinSql(Map paramMap, DataScopeSqlConfigDTO sqlConfigDTO) { DataScopeTypeEnum dataScopeTypeEnum = sqlConfigDTO.getDataScopeType(); String joinSql = sqlConfigDTO.getJoinSql(); - Long employeeId = SmartEmployeeTokenUtil.getRequestEmployeeId(); + Long employeeId = SmartRequestUtil.getRequestEmployeeId(); if (employeeId == null) { return ""; } @@ -109,7 +118,7 @@ public class DataScopeSqlConfigService { log.warn("data scope custom strategy class is null"); return ""; } - DataScopePowerStrategy powerStrategy = (DataScopePowerStrategy) SmartApplicationContext.getBean(sqlConfigDTO.getJoinSqlImplClazz()); + DataScopePowerStrategy powerStrategy = (DataScopePowerStrategy) applicationContext.getBean(sqlConfigDTO.getJoinSqlImplClazz()); if (powerStrategy == null) { log.warn("data scope custom strategy class:{} ,bean is null", sqlConfigDTO.getJoinSqlImplClazz()); return ""; diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/service/DataScopeViewService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/service/DataScopeViewService.java similarity index 64% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/service/DataScopeViewService.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/service/DataScopeViewService.java index 5f464224..71900de5 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/service/DataScopeViewService.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/service/DataScopeViewService.java @@ -1,18 +1,18 @@ -package net.lab1024.smartadmin.service.module.system.datascope.service; +package net.lab1024.smartadmin.service.module.support.datascope.service; import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import net.lab1024.smartadmin.service.module.system.datascope.DataScopeRoleDao; -import net.lab1024.smartadmin.service.module.system.datascope.constant.DataScopeTypeEnum; -import net.lab1024.smartadmin.service.module.system.datascope.constant.DataScopeViewTypeEnum; -import net.lab1024.smartadmin.service.module.system.datascope.domain.entity.DataScopeRoleEntity; -import net.lab1024.smartadmin.service.module.system.department.DepartmentService; +import net.lab1024.smartadmin.service.module.support.datascope.constant.DataScopeTypeEnum; +import net.lab1024.smartadmin.service.module.support.datascope.constant.DataScopeViewTypeEnum; +import net.lab1024.smartadmin.service.module.support.datascope.domain.entity.DataScopeRoleEntity; +import net.lab1024.smartadmin.service.module.system.department.service.DepartmentService; import net.lab1024.smartadmin.service.module.system.employee.EmployeeDao; import net.lab1024.smartadmin.service.module.system.employee.domain.entity.EmployeeEntity; -import net.lab1024.smartadmin.service.module.system.menu.MenuEmployeeService; -import net.lab1024.smartadmin.service.module.system.role.roleemployee.RoleEmployeeDao; +import net.lab1024.smartadmin.service.module.system.menu.service.MenuEmployeeService; +import net.lab1024.smartadmin.service.module.system.role.dao.RoleDataScopeDao; +import net.lab1024.smartadmin.service.module.system.role.dao.RoleEmployeeDao; import net.lab1024.smartadmin.service.common.util.SmartBaseEnumUtil; import java.util.Comparator; @@ -23,7 +23,12 @@ import java.util.stream.Collectors; /** * [ ] * - * @author 罗伊 + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/28 0028 下午 15:56 + * @since JDK1.8 */ @Service public class DataScopeViewService { @@ -32,7 +37,7 @@ public class DataScopeViewService { private RoleEmployeeDao roleEmployeeDao; @Autowired - private DataScopeRoleDao dataScopeRoleDao; + private RoleDataScopeDao roleDataScopeDao; @Autowired private EmployeeDao employeeDao; @@ -42,6 +47,7 @@ public class DataScopeViewService { @Autowired private MenuEmployeeService menuEmployeeService; + /** * 获取某人可以查看的所有人员信息 * @@ -60,6 +66,9 @@ public class DataScopeViewService { if (DataScopeViewTypeEnum.DEPARTMENT_AND_SUB == viewType) { return this.getDepartmentAndSubEmployeeIdList(employeeId); } + if (DataScopeViewTypeEnum.SCHOOL == viewType) { + return this.getSchoolEmployeeIdList(employeeId); + } return Lists.newArrayList(); } @@ -81,15 +90,18 @@ public class DataScopeViewService { if (DataScopeViewTypeEnum.DEPARTMENT_AND_SUB == viewType) { return this.getDepartmentAndSubIdList(employeeId); } + if (DataScopeViewTypeEnum.SCHOOL == viewType) { + return this.getSchoolDepartmentIdList(employeeId); + } return Lists.newArrayList(); } - private List getMeDepartmentIdList(Long employeeId) { + public List getMeDepartmentIdList(Long employeeId) { EmployeeEntity employeeEntity = employeeDao.selectById(employeeId); return Lists.newArrayList(employeeEntity.getDepartmentId()); } - private List getDepartmentAndSubIdList(Long employeeId) { + public List getDepartmentAndSubIdList(Long employeeId) { EmployeeEntity employeeEntity = employeeDao.selectById(employeeId); List allDepartmentIds = departmentService.selfAndChildrenIdList(employeeEntity.getDepartmentId()); return allDepartmentIds; @@ -115,12 +127,15 @@ public class DataScopeViewService { return DataScopeViewTypeEnum.ME; } //未设置角色数据范围 默认本人 - List dataScopeRoleList = dataScopeRoleDao.listByRoleIdList(roleIdList); + List dataScopeRoleList = roleDataScopeDao.listByRoleIdList(roleIdList); if (CollectionUtils.isEmpty(dataScopeRoleList)) { return DataScopeViewTypeEnum.ME; } Map> listMap = dataScopeRoleList.stream().collect(Collectors.groupingBy(DataScopeRoleEntity::getDataScopeType)); - List viewLevelList = listMap.get(dataScopeTypeEnum.getValue()); + List viewLevelList = listMap.getOrDefault(dataScopeTypeEnum.getValue(), Lists.newArrayList()); + if (CollectionUtils.isEmpty(viewLevelList)) { + return DataScopeViewTypeEnum.ME; + } DataScopeRoleEntity maxLevel = viewLevelList.stream().max(Comparator.comparing(e -> SmartBaseEnumUtil.getEnumByValue(e.getViewType(), DataScopeViewTypeEnum.class).getLevel())).get(); return SmartBaseEnumUtil.getEnumByValue(maxLevel.getViewType(), DataScopeViewTypeEnum.class); } @@ -143,7 +158,7 @@ public class DataScopeViewService { */ private List getDepartmentEmployeeIdList(Long employeeId) { EmployeeEntity employeeEntity = employeeDao.selectById(employeeId); - List employeeIdList = employeeDao.getEmployeeIdByDepartmentId(employeeEntity.getDepartmentId(),false,false); + List employeeIdList = employeeDao.getEmployeeIdByDepartmentId(employeeEntity.getDepartmentId(), null, null, false); return employeeIdList; } @@ -155,8 +170,39 @@ public class DataScopeViewService { */ private List getDepartmentAndSubEmployeeIdList(Long employeeId) { List allDepartmentIds = getDepartmentAndSubIdList(employeeId); - List employeeIdList = employeeDao.getEmployeeIdByDepartmentIdList(allDepartmentIds,false,false); + List employeeIdList = employeeDao.getEmployeeIdByDepartmentIdList(allDepartmentIds, null, null, false); return employeeIdList; } + /** + * 获取默认所属分校的所有员工id + * + * @param employeeId + * @return + */ + private List getSchoolEmployeeIdList(Long employeeId) { + Long schoolDepartmentId = departmentService.getSchoolIdByEmployeeId(employeeId); + if (schoolDepartmentId == null) { + return Lists.newArrayList(); + } + List allDepartmentIds = departmentService.selfAndChildrenIdList(schoolDepartmentId); + List employeeIdList = employeeDao.getEmployeeIdByDepartmentIdList(allDepartmentIds, null, null, false); + return employeeIdList; + } + + /** + * 获取默认所属分校的所有部门id + * + * @param employeeId + * @return + */ + private List getSchoolDepartmentIdList(Long employeeId) { + Long schoolDepartmentId = departmentService.getSchoolIdByEmployeeId(employeeId); + if (schoolDepartmentId == null) { + return Lists.newArrayList(); + } + List allDepartmentIds = departmentService.selfAndChildrenIdList(schoolDepartmentId); + return allDepartmentIds; + } + } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/strategy/DataScopePowerStrategy.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/strategy/DataScopePowerStrategy.java similarity index 52% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/strategy/DataScopePowerStrategy.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/strategy/DataScopePowerStrategy.java index 82ec0922..0202830b 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/strategy/DataScopePowerStrategy.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datascope/strategy/DataScopePowerStrategy.java @@ -1,14 +1,19 @@ -package net.lab1024.smartadmin.service.module.system.datascope.strategy; +package net.lab1024.smartadmin.service.module.support.datascope.strategy; -import net.lab1024.smartadmin.service.module.system.datascope.constant.DataScopeViewTypeEnum; -import net.lab1024.smartadmin.service.module.system.datascope.domain.dto.DataScopeSqlConfigDTO; +import net.lab1024.smartadmin.service.module.support.datascope.constant.DataScopeViewTypeEnum; +import net.lab1024.smartadmin.service.module.support.datascope.domain.dto.DataScopeSqlConfigDTO; import java.util.Map; /** * [ 数据范围策略 ,使用DataScopeWhereInTypeEnum.CUSTOM_STRATEGY类型,DataScope注解的joinSql属性无用] * - * @author 罗伊 + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2020/11/28 0008 下午 16:00 + * @since JDK1.8 */ public abstract class DataScopePowerStrategy { diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datatracer/DataTracerController.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datatracer/DataTracerController.java index f9a8a3fc..163f3ee3 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datatracer/DataTracerController.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datatracer/DataTracerController.java @@ -4,9 +4,9 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst; import net.lab1024.smartadmin.service.common.controller.SystemBaseController; -import net.lab1024.smartadmin.service.common.domain.PageResultDTO; +import net.lab1024.smartadmin.service.common.domain.PageResult; import net.lab1024.smartadmin.service.common.domain.ResponseDTO; -import net.lab1024.smartadmin.service.module.support.datatracer.domain.DataTracerQueryForm; +import net.lab1024.smartadmin.service.module.support.datatracer.domain.DataTracerQuery; import net.lab1024.smartadmin.service.module.support.datatracer.domain.DataTracerVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -31,7 +31,7 @@ public class DataTracerController extends SystemBaseController { @ApiOperation("分页查询业务操作日志 - by listen") @PostMapping("/data/tracer/log/query") - public ResponseDTO> query(@Valid @RequestBody DataTracerQueryForm queryForm) { + public ResponseDTO> query(@Valid @RequestBody DataTracerQuery queryForm) { return dataTracerService.query(queryForm); } } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datatracer/DataTracerDao.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datatracer/DataTracerDao.java index d376d1f5..a12a9a4c 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datatracer/DataTracerDao.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datatracer/DataTracerDao.java @@ -3,7 +3,7 @@ package net.lab1024.smartadmin.service.module.support.datatracer; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import net.lab1024.smartadmin.service.module.support.datatracer.domain.DataTracerEntity; -import net.lab1024.smartadmin.service.module.support.datatracer.domain.DataTracerQueryForm; +import net.lab1024.smartadmin.service.module.support.datatracer.domain.DataTracerQuery; import net.lab1024.smartadmin.service.module.support.datatracer.domain.DataTracerVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -33,5 +33,5 @@ public interface DataTracerDao extends BaseMapper { * @param queryForm * @return */ - List query(Page page, @Param("query") DataTracerQueryForm queryForm); + List query(Page page, @Param("query") DataTracerQuery queryForm); } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datatracer/DataTracerService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datatracer/DataTracerService.java index 37a00fac..667c3d5b 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datatracer/DataTracerService.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datatracer/DataTracerService.java @@ -4,12 +4,12 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; -import net.lab1024.smartadmin.service.common.domain.PageResultDTO; +import net.lab1024.smartadmin.service.common.domain.PageResult; import net.lab1024.smartadmin.service.common.domain.ResponseDTO; import net.lab1024.smartadmin.service.module.support.datatracer.constant.DataTracerBusinessTypeEnum; import net.lab1024.smartadmin.service.module.support.datatracer.domain.DataTracerDTO; import net.lab1024.smartadmin.service.module.support.datatracer.domain.DataTracerEntity; -import net.lab1024.smartadmin.service.module.support.datatracer.domain.DataTracerQueryForm; +import net.lab1024.smartadmin.service.module.support.datatracer.domain.DataTracerQuery; import net.lab1024.smartadmin.service.module.support.datatracer.domain.DataTracerVO; import net.lab1024.smartadmin.service.common.util.SmartPageUtil; import org.apache.commons.collections4.CollectionUtils; @@ -107,10 +107,10 @@ public class DataTracerService { * @param queryForm * @return */ - public ResponseDTO> query(DataTracerQueryForm queryForm) { + public ResponseDTO> query(DataTracerQuery queryForm) { Page page = SmartPageUtil.convert2PageQuery(queryForm); List list = dataTracerDao.query(page, queryForm); - PageResultDTO pageResult = SmartPageUtil.convert2PageResult(page, list); + PageResult pageResult = SmartPageUtil.convert2PageResult(page, list); return ResponseDTO.ok(pageResult); } } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datatracer/domain/DataTracerQueryForm.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datatracer/domain/DataTracerQuery.java similarity index 83% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datatracer/domain/DataTracerQueryForm.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datatracer/domain/DataTracerQuery.java index f1b884d8..d705016c 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datatracer/domain/DataTracerQueryForm.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/datatracer/domain/DataTracerQuery.java @@ -2,7 +2,7 @@ package net.lab1024.smartadmin.service.module.support.datatracer.domain; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import net.lab1024.smartadmin.service.common.domain.PageParamForm; +import net.lab1024.smartadmin.service.common.domain.PageParam; import net.lab1024.smartadmin.service.common.swagger.ApiModelPropertyEnum; import net.lab1024.smartadmin.service.module.support.datatracer.constant.DataTracerBusinessTypeEnum; @@ -15,7 +15,7 @@ import javax.validation.constraints.NotNull; * @date 2021/8/17 8:47 */ @Data -public class DataTracerQueryForm extends PageParamForm { +public class DataTracerQuery extends PageParam { @ApiModelPropertyEnum(DataTracerBusinessTypeEnum.class) private Integer businessType; diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/file/FileController.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/file/FileController.java index 63e0e66e..7c71577d 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/file/FileController.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/file/FileController.java @@ -3,11 +3,11 @@ package net.lab1024.smartadmin.service.module.support.file; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import net.lab1024.smartadmin.service.common.controller.SupportBaseController; -import net.lab1024.smartadmin.service.common.domain.PageResultDTO; +import net.lab1024.smartadmin.service.common.domain.PageResult; import net.lab1024.smartadmin.service.common.domain.ResponseDTO; import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst; import net.lab1024.smartadmin.service.module.support.file.domain.FileFolderTypeEnum; -import net.lab1024.smartadmin.service.module.support.file.domain.dto.FileQueryForm; +import net.lab1024.smartadmin.service.module.support.file.domain.dto.FileQuery; import net.lab1024.smartadmin.service.module.support.file.domain.dto.FileUrlUploadForm; import net.lab1024.smartadmin.service.module.support.file.domain.vo.FileUploadVO; import net.lab1024.smartadmin.service.module.support.file.domain.vo.FileVO; @@ -52,7 +52,7 @@ public class FileController extends SupportBaseController { @ApiOperation(value = "文件分页查询 by listen") @PostMapping("/file/query") - public ResponseDTO> queryListByPage(@RequestBody @Valid FileQueryForm queryForm) { + public ResponseDTO> queryListByPage(@RequestBody @Valid FileQuery queryForm) { return fileService.queryListByPage(queryForm); } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/file/FileDao.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/file/FileDao.java index a1db7534..f4439167 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/file/FileDao.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/file/FileDao.java @@ -3,7 +3,7 @@ package net.lab1024.smartadmin.service.module.support.file; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import net.lab1024.smartadmin.service.module.support.file.domain.FileEntity; -import net.lab1024.smartadmin.service.module.support.file.domain.dto.FileQueryForm; +import net.lab1024.smartadmin.service.module.support.file.domain.dto.FileQuery; import net.lab1024.smartadmin.service.module.support.file.domain.vo.FileVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -34,6 +34,6 @@ public interface FileDao extends BaseMapper { * @param query * @return */ - List queryListByPage(Page page, @Param("query") FileQueryForm query); + List queryListByPage(Page page, @Param("query") FileQuery query); } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/file/domain/dto/FileQueryForm.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/file/domain/dto/FileQuery.java similarity index 88% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/file/domain/dto/FileQueryForm.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/file/domain/dto/FileQuery.java index 17677cb0..8015784d 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/file/domain/dto/FileQueryForm.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/file/domain/dto/FileQuery.java @@ -2,7 +2,7 @@ package net.lab1024.smartadmin.service.module.support.file.domain.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import net.lab1024.smartadmin.service.common.domain.PageParamForm; +import net.lab1024.smartadmin.service.common.domain.PageParam; import net.lab1024.smartadmin.service.common.swagger.ApiModelPropertyEnum; import net.lab1024.smartadmin.service.common.validator.enumeration.CheckEnum; import net.lab1024.smartadmin.service.module.support.file.domain.FileFolderTypeEnum; @@ -15,7 +15,7 @@ import org.hibernate.validator.constraints.Length; * @Version: 1.0 */ @Data -public class FileQueryForm extends PageParamForm { +public class FileQuery extends PageParam { @ApiModelProperty(value = "文件名称") @Length(max = 50, message = "文件名称搜索最多50字符") diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/file/service/FileService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/file/service/FileService.java index 0c5a60e5..a4f20b53 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/file/service/FileService.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/file/service/FileService.java @@ -5,9 +5,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.collect.Lists; import net.lab1024.smartadmin.service.common.code.SystemErrorCode; import net.lab1024.smartadmin.service.common.code.UserErrorCode; -import net.lab1024.smartadmin.service.common.constant.RedisKeyConst; +import net.lab1024.smartadmin.service.constant.RedisKeyConst; import net.lab1024.smartadmin.service.common.constant.StringConst; -import net.lab1024.smartadmin.service.common.domain.PageResultDTO; +import net.lab1024.smartadmin.service.common.domain.PageResult; import net.lab1024.smartadmin.service.common.domain.ResponseDTO; import net.lab1024.smartadmin.service.common.util.SmartBaseEnumUtil; import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; @@ -18,7 +18,7 @@ import net.lab1024.smartadmin.service.module.support.file.domain.FileEntity; import net.lab1024.smartadmin.service.module.support.file.domain.FileFolderTypeEnum; import net.lab1024.smartadmin.service.module.support.file.domain.dto.FileDownloadDTO; import net.lab1024.smartadmin.service.module.support.file.domain.dto.FileMetadataDTO; -import net.lab1024.smartadmin.service.module.support.file.domain.dto.FileQueryForm; +import net.lab1024.smartadmin.service.module.support.file.domain.dto.FileQuery; import net.lab1024.smartadmin.service.module.support.file.domain.dto.FileUrlUploadForm; import net.lab1024.smartadmin.service.module.support.file.domain.vo.FileUploadVO; import net.lab1024.smartadmin.service.module.support.file.domain.vo.FileVO; @@ -205,7 +205,7 @@ public class FileService { * @param queryDTO * @return */ - public ResponseDTO> queryListByPage(FileQueryForm queryDTO) { + public ResponseDTO> queryListByPage(FileQuery queryDTO) { Page page = SmartPageUtil.convert2PageQuery(queryDTO); List fileList = fileDao.queryListByPage(page, queryDTO); if (CollectionUtils.isNotEmpty(fileList)) { @@ -214,8 +214,8 @@ public class FileService { e.setFileUrl(fileStorageService.getFileUrl(e.getFileKey()).getData()); }); } - PageResultDTO pageResultDTO = SmartPageUtil.convert2PageResult(page, fileList); - return ResponseDTO.ok(pageResultDTO); + PageResult pageResult = SmartPageUtil.convert2PageResult(page, fileList); + return ResponseDTO.ok(pageResult); } /** diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/heartbeat/HeartBeatController.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/heartbeat/HeartBeatController.java index 6d7489ab..0b3569fc 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/heartbeat/HeartBeatController.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/heartbeat/HeartBeatController.java @@ -3,8 +3,8 @@ package net.lab1024.smartadmin.service.module.support.heartbeat; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst; -import net.lab1024.smartadmin.service.common.domain.PageParamForm; -import net.lab1024.smartadmin.service.common.domain.PageResultDTO; +import net.lab1024.smartadmin.service.common.domain.PageParam; +import net.lab1024.smartadmin.service.common.domain.PageResult; import net.lab1024.smartadmin.service.common.domain.ResponseDTO; import net.lab1024.smartadmin.service.common.controller.SupportBaseController; import org.springframework.beans.factory.annotation.Autowired; @@ -24,8 +24,8 @@ public class HeartBeatController extends SupportBaseController { @PostMapping("/heartBeat/query") @ApiOperation("查询心跳记录 @author 卓大") - public ResponseDTO> query(@RequestBody @Valid PageParamForm pageParamForm) { - return heartBeatService.pageQuery(pageParamForm); + public ResponseDTO> query(@RequestBody @Valid PageParam pageParam) { + return heartBeatService.pageQuery(pageParam); } } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/heartbeat/HeartBeatService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/heartbeat/HeartBeatService.java index 853f2347..42d3ee68 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/heartbeat/HeartBeatService.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/heartbeat/HeartBeatService.java @@ -2,8 +2,8 @@ package net.lab1024.smartadmin.service.module.support.heartbeat; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; -import net.lab1024.smartadmin.service.common.domain.PageParamForm; -import net.lab1024.smartadmin.service.common.domain.PageResultDTO; +import net.lab1024.smartadmin.service.common.domain.PageParam; +import net.lab1024.smartadmin.service.common.domain.PageResult; import net.lab1024.smartadmin.service.common.domain.ResponseDTO; import net.lab1024.smartadmin.service.common.util.SmartPageUtil; import org.springframework.beans.factory.annotation.Autowired; @@ -24,10 +24,10 @@ public class HeartBeatService { private HeartBeatRecordDao heartBeatRecordDao; - public ResponseDTO> pageQuery(PageParamForm pageParamForm) { - Page pageQueryInfo = SmartPageUtil.convert2PageQuery(pageParamForm); + public ResponseDTO> pageQuery(PageParam pageParam) { + Page pageQueryInfo = SmartPageUtil.convert2PageQuery(pageParam); List recordVOList = heartBeatRecordDao.pageQuery(pageQueryInfo); - PageResultDTO pageResultDTO = SmartPageUtil.convert2PageResult(pageQueryInfo, recordVOList); - return ResponseDTO.ok(pageResultDTO); + PageResult pageResult = SmartPageUtil.convert2PageResult(pageQueryInfo, recordVOList); + return ResponseDTO.ok(pageResult); } } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/operatelog/OperateLogController.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/operatelog/OperateLogController.java index 9f0dd613..4429e405 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/operatelog/OperateLogController.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/operatelog/OperateLogController.java @@ -3,11 +3,11 @@ package net.lab1024.smartadmin.service.module.support.operatelog; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import net.lab1024.smartadmin.service.common.controller.SupportBaseController; -import net.lab1024.smartadmin.service.common.domain.PageResultDTO; +import net.lab1024.smartadmin.service.common.domain.PageResult; import net.lab1024.smartadmin.service.common.domain.ResponseDTO; import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst; import net.lab1024.smartadmin.service.module.support.operatelog.domain.dto.OperateLogDTO; -import net.lab1024.smartadmin.service.module.support.operatelog.domain.dto.OperateLogQueryForm; +import net.lab1024.smartadmin.service.module.support.operatelog.domain.dto.OperateLogQuery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -27,7 +27,7 @@ public class OperateLogController extends SupportBaseController { @ApiOperation(value = "分页查询 @author 罗伊") @PostMapping("/userOperateLog/page/query") - public ResponseDTO> queryByPage(@RequestBody OperateLogQueryForm queryForm) { + public ResponseDTO> queryByPage(@RequestBody OperateLogQuery queryForm) { return operateLogService.queryByPage(queryForm); } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/operatelog/OperateLogDao.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/operatelog/OperateLogDao.java index 6667f3c4..375dbcb1 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/operatelog/OperateLogDao.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/operatelog/OperateLogDao.java @@ -3,7 +3,7 @@ package net.lab1024.smartadmin.service.module.support.operatelog; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import net.lab1024.smartadmin.service.module.support.operatelog.domain.OperateLogEntity; -import net.lab1024.smartadmin.service.module.support.operatelog.domain.dto.OperateLogQueryForm; +import net.lab1024.smartadmin.service.module.support.operatelog.domain.dto.OperateLogQuery; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Component; @@ -25,7 +25,7 @@ public interface OperateLogDao extends BaseMapper { * @param queryForm * @return UserOperateLogEntity */ - List queryByPage(Page page, @Param("query") OperateLogQueryForm queryForm); + List queryByPage(Page page, @Param("query") OperateLogQuery queryForm); /** * 根据id删除 diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/operatelog/OperateLogService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/operatelog/OperateLogService.java index bc41749d..a300a739 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/operatelog/OperateLogService.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/operatelog/OperateLogService.java @@ -1,11 +1,11 @@ package net.lab1024.smartadmin.service.module.support.operatelog; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import net.lab1024.smartadmin.service.common.domain.PageResultDTO; +import net.lab1024.smartadmin.service.common.domain.PageResult; import net.lab1024.smartadmin.service.common.domain.ResponseDTO; import net.lab1024.smartadmin.service.module.support.operatelog.domain.OperateLogEntity; import net.lab1024.smartadmin.service.module.support.operatelog.domain.dto.OperateLogDTO; -import net.lab1024.smartadmin.service.module.support.operatelog.domain.dto.OperateLogQueryForm; +import net.lab1024.smartadmin.service.module.support.operatelog.domain.dto.OperateLogQuery; import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; import net.lab1024.smartadmin.service.common.util.SmartPageUtil; import org.springframework.beans.factory.annotation.Autowired; @@ -29,11 +29,11 @@ public class OperateLogService { * @description 分页查询 * @date 2019-05-15 11:32:14 */ - public ResponseDTO> queryByPage(OperateLogQueryForm queryForm) { + public ResponseDTO> queryByPage(OperateLogQuery queryForm) { Page page = SmartPageUtil.convert2PageQuery(queryForm); List logEntityList = operateLogDao.queryByPage(page, queryForm); - PageResultDTO pageResultDTO = SmartPageUtil.convert2PageResult(page, logEntityList, OperateLogDTO.class); - return ResponseDTO.ok(pageResultDTO); + PageResult pageResult = SmartPageUtil.convert2PageResult(page, logEntityList, OperateLogDTO.class); + return ResponseDTO.ok(pageResult); } /** diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/operatelog/domain/dto/OperateLogQueryForm.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/operatelog/domain/dto/OperateLogQuery.java similarity index 79% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/operatelog/domain/dto/OperateLogQueryForm.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/operatelog/domain/dto/OperateLogQuery.java index 54658c5b..cb1c521a 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/operatelog/domain/dto/OperateLogQueryForm.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/support/operatelog/domain/dto/OperateLogQuery.java @@ -1,6 +1,6 @@ package net.lab1024.smartadmin.service.module.support.operatelog.domain.dto; -import net.lab1024.smartadmin.service.common.domain.PageParamForm; +import net.lab1024.smartadmin.service.common.domain.PageParam; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -10,7 +10,7 @@ import lombok.Data; * @author 罗伊 */ @Data -public class OperateLogQueryForm extends PageParamForm { +public class OperateLogQuery extends PageParam { @ApiModelProperty("开始日期") diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/DataScopeController.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/DataScopeController.java deleted file mode 100644 index d5b4d33f..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/DataScopeController.java +++ /dev/null @@ -1,49 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.datascope; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst; -import net.lab1024.smartadmin.service.common.controller.SystemBaseController; -import net.lab1024.smartadmin.service.common.domain.ResponseDTO; -import net.lab1024.smartadmin.service.module.system.datascope.domain.dto.DataScopeAndViewTypeVO; -import net.lab1024.smartadmin.service.module.system.datascope.domain.dto.DataScopeBatchSetRoleDTO; -import net.lab1024.smartadmin.service.module.system.datascope.domain.dto.DataScopeSelectVO; -import net.lab1024.smartadmin.service.module.system.datascope.service.DataScopeService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import javax.validation.Valid; -import java.util.List; - -/** - * [ ] - * - * @author 罗伊 - */ -@Api(tags = {SwaggerTagConst.Admin.MANAGER_ROLE}) -@RestController -public class DataScopeController extends SystemBaseController { - - @Autowired - private DataScopeService dataScopeService; - - @ApiOperation(value = "获取当前系统所配置的所有数据范围") - @GetMapping("/dataScope/list") - public ResponseDTO> dataScopeList() { - return dataScopeService.dataScopeList(); - } - - @ApiOperation(value = "获取某角色所设置的数据范围") - @GetMapping("/dataScope/listByRole/{roleId}") - public ResponseDTO> dataScopeListByRole(@PathVariable Long roleId) { - return dataScopeService.dataScopeListByRole(roleId); - } - - @ApiOperation(value = "批量设置某角色数据范围") - @PostMapping("/dataScope/batchSet") - public ResponseDTO dataScopeBatchSet(@RequestBody @Valid DataScopeBatchSetRoleDTO batchSetRoleDTO) { - return dataScopeService.dataScopeBatchSet(batchSetRoleDTO); - } - - -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/constant/DataScopeTypeEnum.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/constant/DataScopeTypeEnum.java deleted file mode 100644 index fa5a8f6c..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/constant/DataScopeTypeEnum.java +++ /dev/null @@ -1,27 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.datascope.constant; - - -import lombok.AllArgsConstructor; -import lombok.Getter; -import net.lab1024.smartadmin.service.common.enumeration.BaseEnum; - -/** - * [ ] - * - * @author 罗伊 - */ -@AllArgsConstructor -@Getter -public enum DataScopeTypeEnum implements BaseEnum { - - NOTICE(7, 7, "系统通知", "系统通知数据范围"), - ; - - private final Integer value; - - private final Integer sort; - - private final String name; - - private final String desc; -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/constant/DataScopeViewTypeEnum.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/constant/DataScopeViewTypeEnum.java deleted file mode 100644 index 57496174..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/constant/DataScopeViewTypeEnum.java +++ /dev/null @@ -1,30 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.datascope.constant; - - -import lombok.AllArgsConstructor; -import lombok.Getter; -import net.lab1024.smartadmin.service.common.enumeration.BaseEnum; - -/** - * [ ] - * - * @author 罗伊 - */ -@AllArgsConstructor -@Getter -public enum DataScopeViewTypeEnum implements BaseEnum { - - ME(0, 0, "本人"), - - DEPARTMENT(1, 5, "本部门"), - - DEPARTMENT_AND_SUB(2, 10, "本部门及下属子部门"), - - ALL(3, 15, "全部"); - - private final Integer value; - - private final Integer level; - - private final String desc; -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/constant/DataScopeWhereInTypeEnum.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/constant/DataScopeWhereInTypeEnum.java deleted file mode 100644 index 9b0b64e1..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/constant/DataScopeWhereInTypeEnum.java +++ /dev/null @@ -1,26 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.datascope.constant; - - -import lombok.AllArgsConstructor; -import lombok.Getter; -import net.lab1024.smartadmin.service.common.enumeration.BaseEnum; - -/** - * [ ] - * - * @author 罗伊 - */ -@AllArgsConstructor -@Getter -public enum DataScopeWhereInTypeEnum implements BaseEnum { - - EMPLOYEE(0, "以员工IN"), - - DEPARTMENT(1, "以部门IN"), - - CUSTOM_STRATEGY(2, "自定义策略"); - - private final Integer value; - - private final String desc; -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/dto/DataScopeBatchSetDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/dto/DataScopeBatchSetDTO.java deleted file mode 100644 index 6500d417..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/dto/DataScopeBatchSetDTO.java +++ /dev/null @@ -1,23 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.datascope.domain.dto; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.validation.constraints.NotNull; - -/** - * [ ] - * - * @author 罗伊 - */ -@Data -public class DataScopeBatchSetDTO { - - @ApiModelProperty("数据范围类型") - @NotNull(message = "数据范围类型不能为空") - private Integer dataScopeType; - - @ApiModelProperty("可见范围") - @NotNull(message = "可见范围不能为空") - private Integer viewType; -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/dto/DataScopeBatchSetRoleDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/dto/DataScopeBatchSetRoleDTO.java deleted file mode 100644 index 3e827f1d..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/dto/DataScopeBatchSetRoleDTO.java +++ /dev/null @@ -1,25 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.datascope.domain.dto; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.validation.Valid; -import javax.validation.constraints.NotNull; -import java.util.List; - -/** - * [ ] - * - * @author 罗伊 - */ -@Data -public class DataScopeBatchSetRoleDTO { - - @ApiModelProperty("角色id") - @NotNull(message = "角色id不能为空") - private Long roleId; - - @ApiModelProperty("设置信息") - @Valid - private List batchSetList; -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/dto/DataScopeSelectVO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/dto/DataScopeSelectVO.java deleted file mode 100644 index fd45790c..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/domain/dto/DataScopeSelectVO.java +++ /dev/null @@ -1,19 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.datascope.domain.dto; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -/** - * [ ] - * - * @author 罗伊 - */ -@Data -public class DataScopeSelectVO { - - @ApiModelProperty("数据范围id") - private Integer dataScopeType; - - @ApiModelProperty("可见范围") - private Integer viewType; -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/service/DataScopeService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/service/DataScopeService.java deleted file mode 100644 index a0fd49f7..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/service/DataScopeService.java +++ /dev/null @@ -1,113 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.datascope.service; - -import com.google.common.collect.Lists; -import net.lab1024.smartadmin.service.common.code.UserErrorCode; -import net.lab1024.smartadmin.service.common.domain.ResponseDTO; -import net.lab1024.smartadmin.service.module.system.datascope.DataScopeRoleDao; -import net.lab1024.smartadmin.service.module.system.datascope.constant.DataScopeTypeEnum; -import net.lab1024.smartadmin.service.module.system.datascope.constant.DataScopeViewTypeEnum; -import net.lab1024.smartadmin.service.module.system.datascope.domain.dto.*; -import net.lab1024.smartadmin.service.module.system.datascope.domain.entity.DataScopeRoleEntity; -import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; - -import java.util.Comparator; -import java.util.List; - -/** - * [ ] - * - * @author 罗伊 - */ -@Service -public class DataScopeService { - - @Autowired - private DataScopeRoleDao dataScopeRoleDao; - - /** - * 获取所有可以进行数据范围配置的信息 - * - * @return - */ - public ResponseDTO> dataScopeList() { - List dataScopeList = this.getDataScopeType(); - List dataScopeAndTypeList = SmartBeanUtil.copyList(dataScopeList, DataScopeAndViewTypeVO.class); - List typeList = this.getViewType(); - dataScopeAndTypeList.forEach(e -> { - e.setViewTypeList(typeList); - }); - return ResponseDTO.ok(dataScopeAndTypeList); - } - - /** - * 获取当前系统存在的数据可见范围 - * - * @return - */ - public List getViewType() { - List viewTypeList = Lists.newArrayList(); - DataScopeViewTypeEnum[] enums = DataScopeViewTypeEnum.class.getEnumConstants(); - DataScopeViewTypeVO dataScopeViewTypeDTO; - for (DataScopeViewTypeEnum viewTypeEnum : enums) { - dataScopeViewTypeDTO = DataScopeViewTypeVO.builder().viewType(viewTypeEnum.getValue()).viewTypeLevel(viewTypeEnum.getLevel()).viewTypeName(viewTypeEnum.getDesc()).build(); - viewTypeList.add(dataScopeViewTypeDTO); - } - Comparator comparator = Comparator.comparing(DataScopeViewTypeVO::getViewTypeLevel); - viewTypeList.sort(comparator); - return viewTypeList; - } - - public List getDataScopeType() { - List dataScopeTypeList = Lists.newArrayList(); - DataScopeTypeEnum[] enums = DataScopeTypeEnum.class.getEnumConstants(); - DataScopeDTO dataScopeDTO; - for (DataScopeTypeEnum typeEnum : enums) { - dataScopeDTO = - DataScopeDTO.builder().dataScopeType(typeEnum.getValue()).dataScopeTypeDesc(typeEnum.getDesc()).dataScopeTypeName(typeEnum.getName()).dataScopeTypeSort(typeEnum.getSort()).build(); - dataScopeTypeList.add(dataScopeDTO); - } - Comparator comparator = Comparator.comparing(DataScopeDTO::getDataScopeTypeSort); - dataScopeTypeList.sort(comparator); - return dataScopeTypeList; - } - - /** - * 获取某个角色的数据范围设置信息 - * - * @param roleId - * @return - */ - public ResponseDTO> dataScopeListByRole(Long roleId) { - - List dataScopeRoleEntityList = dataScopeRoleDao.listByRoleId(roleId); - if (CollectionUtils.isEmpty(dataScopeRoleEntityList)) { - return ResponseDTO.ok(Lists.newArrayList()); - } - List dataScopeSelects = SmartBeanUtil.copyList(dataScopeRoleEntityList, DataScopeSelectVO.class); - return ResponseDTO.ok(dataScopeSelects); - } - - /** - * 批量设置某个角色的数据范围设置信息 - * - * @param batchSetRoleDTO - * @return - */ - @Transactional(rollbackFor = Exception.class) - public ResponseDTO dataScopeBatchSet(DataScopeBatchSetRoleDTO batchSetRoleDTO) { - List batchSetList = batchSetRoleDTO.getBatchSetList(); - if (CollectionUtils.isEmpty(batchSetList)) { - return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "缺少配置信息"); - } - List dataScopeRoleEntityList = SmartBeanUtil.copyList(batchSetList, DataScopeRoleEntity.class); - dataScopeRoleEntityList.forEach(e -> e.setRoleId(batchSetRoleDTO.getRoleId())); - dataScopeRoleDao.deleteByRoleId(batchSetRoleDTO.getRoleId()); - dataScopeRoleDao.batchInsert(dataScopeRoleEntityList); - return ResponseDTO.ok(); - } - -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/DepartmentCacheManager.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/DepartmentCacheManager.java deleted file mode 100644 index 82a97923..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/DepartmentCacheManager.java +++ /dev/null @@ -1,69 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.department; - -import lombok.extern.slf4j.Slf4j; -import net.lab1024.smartadmin.service.common.constant.CacheModuleConst; -import net.lab1024.smartadmin.service.module.system.department.domain.vo.DepartmentTreeVO; -import net.lab1024.smartadmin.service.module.system.department.domain.vo.DepartmentVO; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cache.annotation.CacheEvict; -import org.springframework.cache.annotation.Cacheable; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * @author 罗伊 - * @date 2021-01-31 0:48 - */ -@Slf4j -@Service -public class DepartmentCacheManager { - - @Autowired - private DepartmentDao departmentDao; - - @Autowired - private DepartmentTreeService departmentTreeService; - - - /** - * 清除自身以及下级的id列表缓存 - */ - @CacheEvict(CacheModuleConst.Department.DEPARTMENT_SELF_CHILDREN_ID_CACHE) - public void clearSelfAndChildrenIdCache() { - log.info("clear DEPARTMENT_SELF_CHILDREN_ID_CACHE"); - } - - /** - * 清除树结构缓存 - */ - @CacheEvict(CacheModuleConst.Department.DEPARTMENT_TREE_CACHE) - public void clearTreeCache() { - log.info("clear DEPARTMENT_TREE_CACHE"); - } - - /** - * 缓存部门树结构 - * - * @return - */ - @Cacheable(CacheModuleConst.Department.DEPARTMENT_TREE_CACHE) - public List departmentTreeCache() { - List departmentVOList = departmentDao.listAll(); - List treeList = departmentTreeService.buildTree(departmentVOList); - return treeList; - } - - /** - * 缓存某个部门的下级id列表 - * - * @param departmentId - * @return - */ - @Cacheable(CacheModuleConst.Department.DEPARTMENT_SELF_CHILDREN_ID_CACHE) - public List departmentSelfAndChildrenIdCache(Long departmentId) { - List departmentVOList = departmentDao.listAll(); - List idList = departmentTreeService.selfAndChildrenIdList(departmentId, departmentVOList); - return idList; - } -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/DepartmentConst.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/DepartmentConst.java deleted file mode 100644 index 50ec31af..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/DepartmentConst.java +++ /dev/null @@ -1,10 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.department; - -class DepartmentConst { - - /** - * 默认的顶级部门的parent id - */ - - static final long DEFAULT_PARENT_ID = 0; -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/DepartmentController.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/DepartmentController.java deleted file mode 100644 index 68baeea8..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/DepartmentController.java +++ /dev/null @@ -1,105 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.department; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst; -import net.lab1024.smartadmin.service.common.controller.SystemBaseController; -import net.lab1024.smartadmin.service.common.domain.ResponseDTO; -import net.lab1024.smartadmin.service.module.system.department.domain.dto.DepartmentCreateDTO; -import net.lab1024.smartadmin.service.module.system.department.domain.dto.DepartmentUpdateDTO; -import net.lab1024.smartadmin.service.module.system.department.domain.vo.DepartmentEmployeeTreeVO; -import net.lab1024.smartadmin.service.module.system.department.domain.vo.DepartmentTreeVO; -import net.lab1024.smartadmin.service.module.system.department.domain.vo.DepartmentVO; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import javax.validation.Valid; -import java.util.List; - -/** - * 部门管理路由器 - * - * @author listen - * @date 2017/12/19 14:29 - */ -@Api(tags = {SwaggerTagConst.Admin.MANAGER_DEPARTMENT}) -@RestController -public class DepartmentController extends SystemBaseController { - - @Autowired - private DepartmentService departmentService; - - @ApiOperation(value = "查询部门树形列表") - @GetMapping("/department/treeList") - public ResponseDTO> departmentTree() { - return departmentService.departmentTree(); - } - - @ApiOperation(value = "查询部门及员工树列表") - @GetMapping("/department/departmentEmployeeTree") - public ResponseDTO> departmentEmployeeTree() { - return departmentService.departmentEmployeeTree(); - } - - @ApiOperation(value = "根据部门名称查询部门树列表") - @GetMapping("/department/departmentTreeByName") - public ResponseDTO> departmentTreeByName(String departmentName) { - return departmentService.departmentTreeByName(departmentName); - } - - @ApiOperation(value = "添加部门") - @PostMapping("/department/add") - public ResponseDTO addDepartment(@Valid @RequestBody DepartmentCreateDTO createDTO) { - return departmentService.addDepartment(createDTO); - } - - @ApiOperation(value = "更新部门信息") - @PostMapping("/department/update") - public ResponseDTO updateDepartment(@Valid @RequestBody DepartmentUpdateDTO updateDTO) { - return departmentService.updateDepartment(updateDTO); - } - - @ApiOperation(value = "删除部门") - @GetMapping("/department/delete/{deptId}") - public ResponseDTO delDepartment(@PathVariable Long deptId) { - return departmentService.delDepartment(deptId); - } - - @ApiOperation(value = "获取部门信息") - @GetMapping("/department/query/{deptId}") - public ResponseDTO getDepartment(@PathVariable Long deptId) { - return departmentService.getDepartmentById(deptId); - } - - @ApiOperation(value = "查询部门列表") - @GetMapping("/department/listAll") - public ResponseDTO> listAll() { - return departmentService.listAll(); - } - - - @ApiOperation(value = "上下移动") - @GetMapping("/department/upOrDown/{deptId}/{swapId}") - public ResponseDTO upOrDown(@PathVariable Long deptId, @PathVariable Long swapId) { - return departmentService.upOrDown(deptId, swapId); - } - - @ApiOperation(value = "升级") - @GetMapping("/department/upgrade/{deptId}") - public ResponseDTO upgrade(@PathVariable Long deptId) { - return departmentService.upgrade(deptId); - } - - @ApiOperation(value = "降级") - @GetMapping("/department/downgrade/{deptId}/{preId}") - public ResponseDTO downgrade(@PathVariable Long deptId, @PathVariable Long preId) { - return departmentService.downgrade(deptId, preId); - } - - @ApiOperation("获取校区列表 by 善逸") - @GetMapping("/department/querySchoolList") - public ResponseDTO> querySchoolList() { - return departmentService.querySchoolList(); - } - -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/DepartmentService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/DepartmentService.java deleted file mode 100644 index d6abc0a0..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/DepartmentService.java +++ /dev/null @@ -1,399 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.department; - -import net.lab1024.smartadmin.service.common.code.UserErrorCode; -import net.lab1024.smartadmin.service.common.domain.ResponseDTO; -import net.lab1024.smartadmin.service.module.system.department.domain.dto.DepartmentCreateDTO; -import net.lab1024.smartadmin.service.module.system.department.domain.dto.DepartmentUpdateDTO; -import net.lab1024.smartadmin.service.module.system.department.domain.entity.DepartmentEntity; -import net.lab1024.smartadmin.service.module.system.department.domain.vo.DepartmentEmployeeTreeVO; -import net.lab1024.smartadmin.service.module.system.department.domain.vo.DepartmentTreeVO; -import net.lab1024.smartadmin.service.module.system.department.domain.vo.DepartmentVO; -import net.lab1024.smartadmin.service.module.system.employee.EmployeeDao; -import net.lab1024.smartadmin.service.module.system.employee.domain.dto.EmployeeDTO; -import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.compress.utils.Lists; -import org.apache.commons.lang3.StringUtils; -import org.springframework.aop.framework.AopContext; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.*; -import java.util.stream.Collectors; - -/** - * 部门管理业务类 - * - * @author listen - * @date 2017/12/19 14:25 - */ -@Service -public class DepartmentService { - - @Autowired - private DepartmentDao departmentDao; - - @Autowired - private EmployeeDao employeeDao; - - @Autowired - private DepartmentTreeService departmentTreeService; - - @Autowired - protected DepartmentCacheManager departmentCacheManager; - - /** - * 获取部门树形结构 - * - * @return - */ - public ResponseDTO> departmentTree() { - List treeVOList = departmentCacheManager.departmentTreeCache(); - return ResponseDTO.ok(treeVOList); - } - - /** - * 自身以及所有下级的部门id列表 - * - * @param departmentId - * @return - */ - public List selfAndChildrenIdList(Long departmentId) { - return departmentCacheManager.departmentSelfAndChildrenIdCache(departmentId); - } - - /** - * 部门员工树 - * - * @return - */ - public ResponseDTO> departmentEmployeeTree() { - List treeVOList = departmentCacheManager.departmentTreeCache(); - if (CollectionUtils.isEmpty(treeVOList)) { - return ResponseDTO.ok(Lists.newArrayList()); - } - // 获取全部员工列表 - List employeeList = employeeDao.listAll(); - if (CollectionUtils.isEmpty(employeeList)) { - return ResponseDTO.ok(SmartBeanUtil.copyList(treeVOList, DepartmentEmployeeTreeVO.class)); - } - Map> employeeMap = employeeList.stream().collect(Collectors.groupingBy(EmployeeDTO::getDepartmentId)); - //构建各部门的员工信息 - List departmentEmployeeTreeVOList = this.buildTreeEmployee(treeVOList, employeeMap); - - return ResponseDTO.ok(departmentEmployeeTreeVOList); - } - - /** - * 递归构建每部门的员工信息 - * - * @param treeVOList - * @param employeeMap - * @return - */ - private List buildTreeEmployee(List treeVOList, Map> employeeMap) { - List departmentEmployeeTreeVOList = Lists.newArrayList(); - for (DepartmentTreeVO departmentTreeVO : treeVOList) { - DepartmentEmployeeTreeVO departmentEmployeeTreeVO = SmartBeanUtil.copy(departmentTreeVO, DepartmentEmployeeTreeVO.class); - departmentEmployeeTreeVO.setEmployees(employeeMap.getOrDefault(departmentEmployeeTreeVO.getId(), Lists.newArrayList())); - List children = departmentTreeVO.getChildren(); - if (CollectionUtils.isEmpty(children)) { - continue; - } - List childrenList = this.buildTreeEmployee(children, employeeMap); - departmentEmployeeTreeVO.setChildren(childrenList); - departmentEmployeeTreeVOList.add(departmentEmployeeTreeVO); - } - return departmentEmployeeTreeVOList; - } - - /** - * 获取所有部门和员工信息 - * - * @param departmentName - * @return - */ - public ResponseDTO> departmentTreeByName(String departmentName) { - // 获取全部部门列表 - List departmentVOList = departmentDao.listAll(); - if (StringUtils.isNotBlank(departmentName)) { - // 检索条件不为空的时候 过滤部门列表 - departmentVOList = this.filterDepartment(departmentVOList, departmentName); - } - List result = departmentTreeService.buildTree(departmentVOList); - return ResponseDTO.ok(result); - } - - /** - * 过滤部门名称,获取过滤后的结果 - * - * @author 开云 - * @date 2019/4/28 20:17 - */ - private List filterDepartment(List departmentVOList, String departmentName) { - Map departmentMap = new HashMap<>(departmentVOList.size()); - departmentVOList.forEach(item -> { - if (!item.getName().contains(departmentName)) { - return; - } - // 当前部门包含关键字 - departmentMap.put(item.getId(), item); - Long parentId = item.getParentId(); - if (null != parentId) { - List filterResult = new ArrayList<>(); - getParentDepartment(departmentVOList, parentId, filterResult); - for (DepartmentVO dto : filterResult) { - if (!departmentMap.containsKey(dto.getId())) { - departmentMap.put(dto.getId(), dto); - } - } - } - }); - return new ArrayList<>(departmentMap.values()); - } - - /** - * 递归获取部门的所有上级元素 - * - * @param departmentVOList - * @param parentId - * @param result - * @return - */ - private List getParentDepartment(List departmentVOList, Long parentId, List result) { - List deptList = departmentVOList.stream().filter(e -> e.getId().equals(parentId)).collect(Collectors.toList()); - for (DepartmentVO item : deptList) { - result.add(item); - if (item.getParentId() != DepartmentConst.DEFAULT_PARENT_ID && item.getParentId() != null) { - result.addAll(getParentDepartment(departmentVOList, item.getParentId(), result)); - } - } - return result; - } - - /** - * 新增添加部门 - * - * @param departmentCreateDTO - * @return AjaxResult - */ - - public ResponseDTO addDepartment(DepartmentCreateDTO departmentCreateDTO) { - DepartmentEntity departmentEntity = SmartBeanUtil.copy(departmentCreateDTO, DepartmentEntity.class); - departmentEntity.setSort(0L); - DepartmentService departmentService = (DepartmentService) AopContext.currentProxy(); - departmentService.addDepartmentHandle(departmentEntity); - departmentCacheManager.clearTreeCache(); - departmentCacheManager.clearSelfAndChildrenIdCache(); - return ResponseDTO.ok(); - } - - /** - * 新增部门数据处理 - * - * @param departmentEntity - */ - @Transactional(rollbackFor = Exception.class) - public void addDepartmentHandle(DepartmentEntity departmentEntity) { - departmentDao.insert(departmentEntity); - DepartmentEntity updateSortEntity = new DepartmentEntity(); - updateSortEntity.setId(departmentEntity.getId()); - updateSortEntity.setSort(departmentEntity.getId()); - departmentDao.updateById(updateSortEntity); - } - - /** - * 更新部门信息 - * - * @param updateDTO - * @return - */ - public ResponseDTO updateDepartment(DepartmentUpdateDTO updateDTO) { - if (updateDTO.getParentId() == null) { - return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "父级部门id不能为空"); - } - DepartmentEntity entity = departmentDao.selectById(updateDTO.getId()); - if (entity == null) { - return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); - } - DepartmentEntity departmentEntity = SmartBeanUtil.copy(updateDTO, DepartmentEntity.class); - departmentEntity.setSort(entity.getSort()); - departmentDao.updateById(departmentEntity); - departmentCacheManager.clearTreeCache(); - return ResponseDTO.ok(); - } - - /** - * 根据id删除部门 - * 1、需要判断当前部门是否有子部门,有子部门则不允许删除 - * 2、需要判断当前部门是否有员工,有员工则不能删除 - * - * @param deptId - * @return - */ - public ResponseDTO delDepartment(Long deptId) { - DepartmentEntity departmentEntity = departmentDao.selectById(deptId); - if (null == departmentEntity) { - return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); - } - // 是否有子级部门 - int subDepartmentNum = departmentDao.countSubDepartment(deptId); - if (subDepartmentNum > 0) { - return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "请先删除子级部门"); - } - - // 是否有未删除员工 - int employeeNum = employeeDao.countByDepartmentId(deptId, false); - if (employeeNum > 0) { - return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "请先删除部门员工"); - } - departmentDao.deleteById(deptId); - // 清除缓存 - departmentCacheManager.clearTreeCache(); - departmentCacheManager.clearSelfAndChildrenIdCache(); - return ResponseDTO.ok(); - } - - /** - * 根据id获取部门信息 - * - * @param departmentId - * @return - */ - public ResponseDTO getDepartmentById(Long departmentId) { - DepartmentEntity departmentEntity = departmentDao.selectById(departmentId); - if (departmentEntity == null) { - return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); - } - DepartmentVO departmentVO = SmartBeanUtil.copy(departmentEntity, DepartmentVO.class); - return ResponseDTO.ok(departmentVO); - } - - /** - * 获取所有部门 - * - * @return - */ - public ResponseDTO> listAll() { - List departmentVOList = departmentDao.listAll(); - return ResponseDTO.ok(departmentVOList); - } - - /** - * 上下移动 - * - * @param departmentId - * @param swapId - * @return - */ - public ResponseDTO upOrDown(Long departmentId, Long swapId) { - DepartmentEntity departmentEntity = departmentDao.selectById(departmentId); - if (departmentEntity == null) { - return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); - } - DepartmentEntity swapEntity = departmentDao.selectById(swapId); - if (swapEntity == null) { - return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); - } - DepartmentEntity updateEntity = new DepartmentEntity(); - updateEntity.setId(departmentId); - updateEntity.setSort(swapEntity.getSort()); - - DepartmentEntity swapUpdateEntity = new DepartmentEntity(); - swapUpdateEntity.setId(swapEntity.getId()); - swapUpdateEntity.setSort(departmentEntity.getSort()); - DepartmentService departmentService = (DepartmentService) AopContext.currentProxy(); - departmentService.upOrDownUpdate(updateEntity, swapEntity); - //清除缓存 - departmentCacheManager.clearTreeCache(); - return ResponseDTO.ok(); - } - - /** - * 上下移动数据库处理 - * - * @param departmentEntity - * @param swapEntity - */ - @Transactional(rollbackFor = Exception.class) - public void upOrDownUpdate(DepartmentEntity departmentEntity, DepartmentEntity swapEntity) { - departmentDao.updateById(departmentEntity); - departmentDao.updateById(swapEntity); - } - - /** - * 部门升级 - * - * @param departmentId - * @return - */ - public ResponseDTO upgrade(Long departmentId) { - DepartmentEntity departmentEntity = departmentDao.selectById(departmentId); - if (departmentEntity == null) { - return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); - } - if (departmentEntity.getParentId() == null || departmentEntity.getParentId().equals(DepartmentConst.DEFAULT_PARENT_ID)) { - return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "此部门已经是根节点无法移动"); - } - DepartmentEntity parentEntity = departmentDao.selectById(departmentEntity.getParentId()); - - DepartmentEntity updateEntity = new DepartmentEntity(); - updateEntity.setId(departmentId); - updateEntity.setParentId(parentEntity.getParentId()); - departmentDao.updateById(updateEntity); - //清除缓存 - departmentCacheManager.clearTreeCache(); - return ResponseDTO.ok(); - } - - /** - * 部门降级 - * - * @param departmentId - * @param preId - * @return - */ - public ResponseDTO downgrade(Long departmentId, Long preId) { - DepartmentEntity departmentEntity = departmentDao.selectById(departmentId); - if (departmentEntity == null) { - return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); - } - DepartmentEntity preEntity = departmentDao.selectById(preId); - if (preEntity == null) { - return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); - } - DepartmentEntity updateEntity = new DepartmentEntity(); - updateEntity.setId(departmentId); - updateEntity.setParentId(preEntity.getId()); - departmentDao.updateById(updateEntity); - //清除缓存 - departmentCacheManager.clearTreeCache(); - return ResponseDTO.ok(); - } - - - /** - * 获取校区列表 即第二级部门列表 - * - * @return - */ - public ResponseDTO> querySchoolList() { - ResponseDTO> res = departmentTree(); - if (!res.getOk()) { - return ResponseDTO.error(res); - } - List data = res.getData(); - // 拿到第二级部门列表 - List resList = Lists.newArrayList(); - for (DepartmentTreeVO tree : data) { - List children = tree.getChildren(); - if (!CollectionUtils.isEmpty(children)) { - resList.addAll(SmartBeanUtil.copyList(children, DepartmentVO.class)); - } - } - return ResponseDTO.ok(resList); - } - - -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/controller/DepartmentController.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/controller/DepartmentController.java new file mode 100644 index 00000000..74d11406 --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/controller/DepartmentController.java @@ -0,0 +1,62 @@ +package net.lab1024.smartadmin.service.module.system.department.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import net.lab1024.smartadmin.service.common.controller.SystemBaseController; +import net.lab1024.smartadmin.service.common.domain.ResponseDTO; +import net.lab1024.smartadmin.service.constant.SwaggerTagConst; +import net.lab1024.smartadmin.service.module.system.department.domain.form.DepartmentAddForm; +import net.lab1024.smartadmin.service.module.system.department.domain.form.DepartmentUpdateForm; +import net.lab1024.smartadmin.service.module.system.department.domain.vo.DepartmentTreeVO; +import net.lab1024.smartadmin.service.module.system.department.domain.vo.DepartmentVO; +import net.lab1024.smartadmin.service.module.system.department.service.DepartmentService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +/** + * 部门管理 + * + * @author zhuoda + */ +@Api(tags = {SwaggerTagConst.System.DEPARTMENT}) +@RestController +public class DepartmentController extends SystemBaseController { + + @Autowired + private DepartmentService departmentService; + + @ApiOperation(value = "查询部门树形列表 @author zhuoda") + @GetMapping("/department/treeList") + public ResponseDTO> departmentTree() { + return departmentService.departmentTree(); + } + + + @ApiOperation(value = "添加部门 @author zhuoda") + @PostMapping("/department/add") + public ResponseDTO addDepartment(@Valid @RequestBody DepartmentAddForm createDTO) { + return departmentService.addDepartment(createDTO); + } + + @ApiOperation(value = "更新部门 @author zhuoda") + @PostMapping("/department/update") + public ResponseDTO updateDepartment(@Valid @RequestBody DepartmentUpdateForm updateDTO) { + return departmentService.updateDepartment(updateDTO); + } + + @ApiOperation(value = "删除部门 @author zhuoda") + @GetMapping("/department/delete/{departmentId}") + public ResponseDTO deleteDepartment(@PathVariable Long departmentId) { + return departmentService.deleteDepartment(departmentId); + } + + @ApiOperation(value = "查询部门列表 @author zhuoda") + @GetMapping("/department/listAll") + public ResponseDTO> listAll() { + return departmentService.listAll(); + } + +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/DepartmentDao.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/dao/DepartmentDao.java similarity index 55% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/DepartmentDao.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/dao/DepartmentDao.java index 6ffd1c18..ee3a2ac7 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/DepartmentDao.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/dao/DepartmentDao.java @@ -1,19 +1,15 @@ -package net.lab1024.smartadmin.service.module.system.department; +package net.lab1024.smartadmin.service.module.system.department.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import net.lab1024.smartadmin.service.module.system.department.domain.entity.DepartmentEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Component; -import net.lab1024.smartadmin.service.module.system.department.domain.entity.DepartmentEntity; -import net.lab1024.smartadmin.service.module.system.department.domain.vo.DepartmentVO; - -import java.util.List; /** * t_department dao接口 * - * @author listen - * @date 2017/12/19 10:58 + * @author zhuoda */ @Component @Mapper @@ -22,23 +18,15 @@ public interface DepartmentDao extends BaseMapper { /** * 根据部门id,查询此部门直接子部门的数量 * - * @param deptId + * @param departmentId * @return int 子部门的数量 */ - Integer countSubDepartment(@Param("deptId") Long deptId); + Integer countSubDepartment(@Param("departmentId") Long departmentId); /** * 获取全部部门列表 * * @return */ - List listAll(); - - /** - * 获取根据父级ID查询部门列表 - * - * @return - */ - List queryByParentId(@Param("parentId") Long parentId); } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/entity/DepartmentEntity.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/entity/DepartmentEntity.java index 3452d2fa..d3a3a5a4 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/entity/DepartmentEntity.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/entity/DepartmentEntity.java @@ -29,11 +29,6 @@ public class DepartmentEntity { */ private String name; - /** - * 部门简称 - */ - private String shortName; - /** * 负责人员工 id */ @@ -47,7 +42,7 @@ public class DepartmentEntity { /** * 排序 */ - private Long sort; + private Integer sort; /** diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/entity/DepartmentThirdEntity.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/entity/DepartmentThirdEntity.java new file mode 100644 index 00000000..b3251120 --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/entity/DepartmentThirdEntity.java @@ -0,0 +1,33 @@ +package net.lab1024.smartadmin.service.module.system.department.domain.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 部门实体类 + * t_department 数据表 + * + * @author listen + * @date 2017/12/19 10:45 + */ +@Data +@TableName(value = "t_department_third") +public class DepartmentThirdEntity { + + private Long departmentId; + /** + * {@link net.lab1024.smartadmin.mq.constant.XmfCrmPlatformEnum} + */ + private Integer platformType; + /** + * 第三方平台部门id + */ + private Long thirdDepartmentId; + + private LocalDateTime updateTime; + + private LocalDateTime createTime; + +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/dto/DepartmentCreateDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/form/DepartmentAddForm.java similarity index 68% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/dto/DepartmentCreateDTO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/form/DepartmentAddForm.java index d5b422e1..f7a4cbe0 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/dto/DepartmentCreateDTO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/form/DepartmentAddForm.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.module.system.department.domain.dto; +package net.lab1024.smartadmin.service.module.system.department.domain.form; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,19 +9,25 @@ import javax.validation.constraints.NotNull; /** * * [ ] - * - * @author 罗伊 + * + * @version 1.0 + * @since JDK1.8 + * @author yandanyang + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date */ @Data -public class DepartmentCreateDTO { +public class DepartmentAddForm { @ApiModelProperty("部门名称") @Length(min = 1, max = 50, message = "请输入正确的部门名称(1-50个字符)") @NotNull(message = "请输入正确的部门名称(1-50个字符)") private String name; - @ApiModelProperty("部门简称") - private String shortName; + @ApiModelProperty("排序") + @NotNull(message = "排序值") + private Integer sort; @ApiModelProperty("部门负责人id") private Long managerId; diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/dto/DepartmentUpdateDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/form/DepartmentUpdateForm.java similarity index 58% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/dto/DepartmentUpdateDTO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/form/DepartmentUpdateForm.java index 1914508a..41924d4d 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/dto/DepartmentUpdateDTO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/form/DepartmentUpdateForm.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.module.system.department.domain.dto; +package net.lab1024.smartadmin.service.module.system.department.domain.form; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -8,10 +8,15 @@ import javax.validation.constraints.NotNull; /** * [ ] * - * @author 罗伊 + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 */ @Data -public class DepartmentUpdateDTO extends DepartmentCreateDTO { +public class DepartmentUpdateForm extends DepartmentAddForm { @ApiModelProperty("部门id") @NotNull(message = "部门id不能为空") diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/vo/DepartmentEmployeeTreeVO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/vo/DepartmentEmployeeTreeVO.java index ee2f0bc9..0921d440 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/vo/DepartmentEmployeeTreeVO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/vo/DepartmentEmployeeTreeVO.java @@ -2,19 +2,19 @@ package net.lab1024.smartadmin.service.module.system.department.domain.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import net.lab1024.smartadmin.service.module.system.employee.domain.dto.EmployeeDTO; +import net.lab1024.smartadmin.service.module.system.employee.domain.vo.EmployeeVO; import java.util.List; /** - * @author 罗伊 + * @author yandanyang * @date 2021-01-30 23:57 */ @Data public class DepartmentEmployeeTreeVO extends DepartmentVO { @ApiModelProperty("部门员工列表") - private List employees; + private List employees; @ApiModelProperty("子部门") private List children; diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/vo/DepartmentTreeVO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/vo/DepartmentTreeVO.java index c4183866..6b50c25e 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/vo/DepartmentTreeVO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/vo/DepartmentTreeVO.java @@ -6,7 +6,7 @@ import lombok.Data; import java.util.List; /** - * @author 罗伊 + * @author yandanyang * @date 2021-01-30 23:57 */ @Data diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/vo/DepartmentVO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/vo/DepartmentVO.java index 84b204fe..af4532f5 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/vo/DepartmentVO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/domain/vo/DepartmentVO.java @@ -4,7 +4,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** - * @author 罗伊 + * @author yandanyang * @date 2021-01-30 23:57 */ @Data @@ -35,7 +35,7 @@ public class DepartmentVO { private Long nextId; @ApiModelProperty("排序") - private Long sort; + private Integer sort; @ApiModelProperty("父级部门名称") private String parentName; diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/DepartmentManager.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/manager/DepartmentManager.java similarity index 61% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/DepartmentManager.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/manager/DepartmentManager.java index 7588948a..37d54541 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/DepartmentManager.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/manager/DepartmentManager.java @@ -1,6 +1,8 @@ -package net.lab1024.smartadmin.service.module.system.department; +package net.lab1024.smartadmin.service.module.system.department.manager; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import net.lab1024.smartadmin.service.module.system.department.dao.DepartmentDao; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import net.lab1024.smartadmin.service.module.system.department.domain.entity.DepartmentEntity; @@ -10,7 +12,7 @@ import java.util.List; /** * Description * - * @author 善逸 + * @author lihaifan * @date 2021/8/31 17:19 */ @Service @@ -25,7 +27,11 @@ public class DepartmentManager extends ServiceImpl insertDepartmentList, List updateDepartmentList) { - saveBatch(insertDepartmentList); - updateBatchById(updateDepartmentList); + if(!CollectionUtils.isEmpty(insertDepartmentList)){ + saveBatch(insertDepartmentList); + } + if(!CollectionUtils.isEmpty(updateDepartmentList)){ + updateBatchById(updateDepartmentList); + } } } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/service/DepartmentCacheService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/service/DepartmentCacheService.java new file mode 100644 index 00000000..d127f01f --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/service/DepartmentCacheService.java @@ -0,0 +1,183 @@ +package net.lab1024.smartadmin.service.module.system.department.service; + +import com.google.common.collect.Maps; +import lombok.extern.slf4j.Slf4j; +import net.lab1024.smartadmin.service.constant.CacheModuleConst; +import net.lab1024.smartadmin.service.module.system.department.dao.DepartmentDao; +import net.lab1024.smartadmin.service.module.system.department.domain.vo.DepartmentTreeVO; +import net.lab1024.smartadmin.service.module.system.department.domain.vo.DepartmentVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * @author 罗伊 + * @date 2021-01-31 0:48 + */ +@Slf4j +@Service +public class DepartmentCacheService { + + @Autowired + private DepartmentDao departmentDao; + + @Autowired + private DepartmentTreeService departmentTreeService; + + /** + * 清除自身以及下级的id列表缓存 + */ + @CacheEvict(value = CacheModuleConst.Department.DEPARTMENT_SELF_CHILDREN_CACHE, allEntries = true) + public void clearSelfAndChildrenIdCache() { + log.info("clear DEPARTMENT_SELF_CHILDREN_CACHE"); + } + + /** + * 清除树结构缓存 + */ + @CacheEvict(value = CacheModuleConst.Department.DEPARTMENT_TREE_CACHE, allEntries = true) + public void clearTreeCache() { + log.info("clear DEPARTMENT_TREE_CACHE"); + } + + /** + * 清除所有缓存 + */ + @CacheEvict(value = CacheModuleConst.Department.DEPARTMENT_CACHE, allEntries = true) + public void clearDepartmentCache() { + log.info("clear DEPARTMENT_CACHE"); + } + + /** + * 清除所有缓存 + */ + @CacheEvict(value = CacheModuleConst.Department.DEPARTMENT_SCHOOL_CACHE, allEntries = true) + public void clearDepartmentSchoolCache() { + log.info("clear DEPARTMENT_SCHOOL_CACHE"); + } + + /** + * 清除所有缓存 + */ + @CacheEvict(value = CacheModuleConst.Department.DEPARTMENT_ROUTE_CACHE, allEntries = true) + public void clearDepartmentRouteCache() { + log.info("clear DEPARTMENT_ROUTE_CACHE"); + } + + /** + * 缓存部门结构 + * + * @return + */ + @Cacheable(CacheModuleConst.Department.DEPARTMENT_CACHE) + public List departmentCache() { + List departmentVOList = departmentDao.listAll(); + return departmentVOList; + } + + /** + * 缓存部门树结构 + * + * @return + */ + @Cacheable(CacheModuleConst.Department.DEPARTMENT_TREE_CACHE) + public List departmentTreeCache() { + List departmentVOList = departmentDao.listAll(); + List treeList = departmentTreeService.buildTree(departmentVOList); + return treeList; + } + + /** + * 缓存某个部门的下级id列表 + * + * @param departmentId + * @return + */ + @Cacheable(CacheModuleConst.Department.DEPARTMENT_SELF_CHILDREN_CACHE) + public List departmentSelfChildrenCache(Long departmentId) { + List departmentVOList = departmentDao.listAll(); + List idList = departmentTreeService.selfAndChildrenIdList(departmentId, departmentVOList); + return idList; + } + + /** + * 某个部门所属的分校信息 + * + * @param departmentId + * @param schoolParentDepartmentId + * @return + */ + @Cacheable(CacheModuleConst.Department.DEPARTMENT_SCHOOL_CACHE) + public DepartmentVO departmentSchoolCache(Long departmentId, Long schoolParentDepartmentId) { + List departmentList = departmentDao.listAll(); + // 递归寻找校区(第二级) + return this.findSchoolDepartmentId(departmentList, departmentId, schoolParentDepartmentId); + } + + /** + * 寻找校区ID + * + * @param departmentList + * @param departmentId + * @return + */ + private DepartmentVO findSchoolDepartmentId(List departmentList, Long departmentId, Long schoolParentDepartmentId) { + Optional findRes = departmentList.stream().filter(e -> e.getId().equals(departmentId)).findFirst(); + // 如果查询不到 或者自己本身为最顶级 返回null + if (!findRes.isPresent()) { + return null; + } + DepartmentVO departmentVO = findRes.get(); + if (departmentVO.getParentId().equals(schoolParentDepartmentId)) { + return departmentVO; + } + // 若父级不为最顶级 进入递归 + return this.findSchoolDepartmentId(departmentList, departmentVO.getParentId(), schoolParentDepartmentId); + } + + /** + * 部门的路径名称 + * + * @return + */ + @Cacheable(CacheModuleConst.Department.DEPARTMENT_ROUTE_CACHE) + public Map departmentRouteCache() { + List departmentVOList = departmentDao.listAll(); + Map departmentMap = departmentVOList.stream().collect(Collectors.toMap(DepartmentVO::getId, Function.identity())); + + Map routeNameMap = Maps.newHashMap(); + for (DepartmentVO departmentVO : departmentVOList) { + String routeName = this.buildRoutePath(departmentVO, departmentMap); + routeNameMap.put(departmentVO.getId(), routeName); + } + + return routeNameMap; + } + + /** + * 构建父级考点路径 + * + * @param departmentVO + * @param departmentMap + */ + private String buildRoutePath(DepartmentVO departmentVO, Map departmentMap) { + if (departmentVO.getParentId() == DepartmentService.DEFAULT_PARENT_ID) { + return departmentVO.getName(); + } + //父节点 + DepartmentVO parentDepartment = departmentMap.get(departmentVO.getParentId()); + if (parentDepartment == null) { + return departmentVO.getName(); + } + String parentRouteName = buildRoutePath(parentDepartment, departmentMap); + return parentRouteName + "/" + departmentVO.getName(); + + } +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/service/DepartmentService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/service/DepartmentService.java new file mode 100644 index 00000000..cb9ed798 --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/service/DepartmentService.java @@ -0,0 +1,230 @@ +package net.lab1024.smartadmin.service.module.system.department.service; + +import com.google.common.collect.Lists; +import net.lab1024.smartadmin.service.common.code.UserErrorCode; +import net.lab1024.smartadmin.service.common.domain.ResponseDTO; +import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; +import net.lab1024.smartadmin.service.module.system.department.dao.DepartmentDao; +import net.lab1024.smartadmin.service.module.system.department.domain.entity.DepartmentEntity; +import net.lab1024.smartadmin.service.module.system.department.domain.form.DepartmentAddForm; +import net.lab1024.smartadmin.service.module.system.department.domain.form.DepartmentUpdateForm; +import net.lab1024.smartadmin.service.module.system.department.domain.vo.DepartmentEmployeeTreeVO; +import net.lab1024.smartadmin.service.module.system.department.domain.vo.DepartmentTreeVO; +import net.lab1024.smartadmin.service.module.system.department.domain.vo.DepartmentVO; +import net.lab1024.smartadmin.service.module.system.employee.EmployeeDao; +import net.lab1024.smartadmin.service.module.system.employee.domain.vo.EmployeeVO; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.aop.framework.AopContext; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 部门管理 + * + * @author zhuoda + */ +@Service +public class DepartmentService { + + static final long DEFAULT_PARENT_ID = 0L; + + @Autowired + private DepartmentDao departmentDao; + + @Autowired + private EmployeeDao employeeDao; + + @Autowired + private DepartmentCacheService departmentCacheService; + + + /** + * 获取部门树形结构 + * + * @return + */ + public ResponseDTO> departmentTree() { + List treeVOList = departmentCacheService.departmentTreeCache(); + return ResponseDTO.ok(treeVOList); + } + + /** + * 自身以及所有下级的部门id列表 + * + * @param departmentId + * @return + */ + public List selfAndChildrenIdList(Long departmentId) { + return departmentCacheService.departmentSelfChildrenCache(departmentId); + } + + + /** + * 递归构建每部门的员工信息 + * + * @param treeVOList + * @param employeeMap + * @return + */ + private List buildTreeEmployee(List treeVOList, Map> employeeMap) { + List departmentEmployeeTreeVOList = Lists.newArrayList(); + for (DepartmentTreeVO departmentTreeVO : treeVOList) { + DepartmentEmployeeTreeVO departmentEmployeeTreeVO = SmartBeanUtil.copy(departmentTreeVO, DepartmentEmployeeTreeVO.class); + departmentEmployeeTreeVO.setEmployees(employeeMap.getOrDefault(departmentEmployeeTreeVO.getId(), Lists.newArrayList())); + List children = departmentTreeVO.getChildren(); + if (CollectionUtils.isEmpty(children)) { + continue; + } + List childrenList = this.buildTreeEmployee(children, employeeMap); + departmentEmployeeTreeVO.setChildren(childrenList); + departmentEmployeeTreeVOList.add(departmentEmployeeTreeVO); + } + return departmentEmployeeTreeVOList; + } + + + /** + * 过滤部门名称,获取过滤后的结果 + * + * @author lidoudou + * @date 2019/4/28 20:17 + */ + private List filterDepartment(List departmentVOList, String departmentName) { + Map departmentMap = new HashMap<>(departmentVOList.size()); + departmentVOList.forEach(item -> { + if (!item.getName().contains(departmentName)) { + return; + } + // 当前部门包含关键字 + departmentMap.put(item.getId(), item); + Long parentId = item.getParentId(); + if (null != parentId) { + List filterResult = new ArrayList<>(); + getParentDepartment(departmentVOList, parentId, filterResult); + for (DepartmentVO dto : filterResult) { + if (!departmentMap.containsKey(dto.getId())) { + departmentMap.put(dto.getId(), dto); + } + } + } + }); + return new ArrayList<>(departmentMap.values()); + } + + /** + * 递归获取部门的所有上级元素 + * + * @param departmentVOList + * @param parentId + * @param result + * @return + */ + private List getParentDepartment(List departmentVOList, Long parentId, List result) { + List deptList = departmentVOList.stream().filter(e -> e.getId().equals(parentId)).collect(Collectors.toList()); + for (DepartmentVO item : deptList) { + result.add(item); + if (item.getParentId() != DEFAULT_PARENT_ID && item.getParentId() != null) { + result.addAll(getParentDepartment(departmentVOList, item.getParentId(), result)); + } + } + return result; + } + + /** + * 新增添加部门 + * + * @param departmentAddForm + * @return AjaxResult + */ + + public ResponseDTO addDepartment(DepartmentAddForm departmentAddForm) { + DepartmentEntity departmentEntity = SmartBeanUtil.copy(departmentAddForm, DepartmentEntity.class); + DepartmentService departmentService = (DepartmentService) AopContext.currentProxy(); + departmentDao.insert(departmentEntity); + this.clearCache(); + return ResponseDTO.ok(); + } + + + /** + * 更新部门信息 + * + * @param updateDTO + * @return + */ + public ResponseDTO updateDepartment(DepartmentUpdateForm updateDTO) { + if (updateDTO.getParentId() == null) { + return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "父级部门id不能为空"); + } + DepartmentEntity entity = departmentDao.selectById(updateDTO.getId()); + if (entity == null) { + return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); + } + DepartmentEntity departmentEntity = SmartBeanUtil.copy(updateDTO, DepartmentEntity.class); + departmentEntity.setSort(updateDTO.getSort()); + departmentDao.updateById(departmentEntity); + this.clearCache(); + return ResponseDTO.ok(); + } + + /** + * 根据id删除部门 + * 1、需要判断当前部门是否有子部门,有子部门则不允许删除 + * 2、需要判断当前部门是否有员工,有员工则不能删除 + * + * @param departmentId + * @return + */ + public ResponseDTO deleteDepartment(Long departmentId) { + DepartmentEntity departmentEntity = departmentDao.selectById(departmentId); + if (null == departmentEntity) { + return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); + } + // 是否有子级部门 + int subDepartmentNum = departmentDao.countSubDepartment(departmentId); + if (subDepartmentNum > 0) { + return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "请先删除子级部门"); + } + + // 是否有未删除员工 + int employeeNum = employeeDao.countByDepartmentId(departmentId, false); + if (employeeNum > 0) { + return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "请先删除部门员工"); + } + departmentDao.deleteById(departmentId); + // 清除缓存 + this.clearCache(); + return ResponseDTO.ok(); + } + + + /** + * 获取所有部门 + * + * @return + */ + public ResponseDTO> listAll() { + List departmentVOList = departmentDao.listAll(); + return ResponseDTO.ok(departmentVOList); + } + + + /** + * 清除自身以及下级的id列表缓存 + */ + private void clearCache() { + departmentCacheService.clearDepartmentCache(); + departmentCacheService.clearSelfAndChildrenIdCache(); + departmentCacheService.clearTreeCache(); + departmentCacheService.clearDepartmentSchoolCache(); + departmentCacheService.clearDepartmentRouteCache(); + } + + +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/DepartmentTreeService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/service/DepartmentTreeService.java similarity index 94% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/DepartmentTreeService.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/service/DepartmentTreeService.java index c7c48af3..3094dae3 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/DepartmentTreeService.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/department/service/DepartmentTreeService.java @@ -1,20 +1,18 @@ -package net.lab1024.smartadmin.service.module.system.department; +package net.lab1024.smartadmin.service.module.system.department.service; import com.google.common.collect.Lists; -import net.lab1024.smartadmin.service.common.constant.StringConst; +import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; import net.lab1024.smartadmin.service.module.system.department.domain.vo.DepartmentTreeVO; import net.lab1024.smartadmin.service.module.system.department.domain.vo.DepartmentVO; -import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** - * [ ] - * - * @author 罗伊 + * @author zhuoda */ @Service public class DepartmentTreeService { @@ -29,7 +27,7 @@ public class DepartmentTreeService { if (CollectionUtils.isEmpty(voList)) { return Lists.newArrayList(); } - List rootList = voList.stream().filter(e -> e.getParentId() == null || e.getParentId() == DepartmentConst.DEFAULT_PARENT_ID).collect(Collectors.toList()); + List rootList = voList.stream().filter(e -> e.getParentId() == null || Objects.equals(e.getParentId(), DepartmentService.DEFAULT_PARENT_ID)).collect(Collectors.toList()); if (CollectionUtils.isEmpty(rootList)) { return Lists.newArrayList(); } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeCacheManager.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeCacheService.java similarity index 81% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeCacheManager.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeCacheService.java index 7653daac..359abc7d 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeCacheManager.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeCacheService.java @@ -1,28 +1,28 @@ package net.lab1024.smartadmin.service.module.system.employee; import lombok.extern.slf4j.Slf4j; -import net.lab1024.smartadmin.service.common.constant.CacheModuleConst; -import net.lab1024.smartadmin.service.module.system.employee.domain.entity.EmployeeEntity; -import net.lab1024.smartadmin.service.module.system.role.roleemployee.RoleEmployeeDao; +import net.lab1024.smartadmin.service.constant.CacheModuleConst; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.compress.utils.Lists; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; +import net.lab1024.smartadmin.service.module.system.employee.domain.entity.EmployeeEntity; +import net.lab1024.smartadmin.service.module.system.role.dao.RoleEmployeeDao; import java.util.List; /** - * @author 罗伊 - * @date 2021-01-30 23:57 + * @author zhuoda */ @Slf4j @Service -public class EmployeeCacheManager { +public class EmployeeCacheService { @Autowired private EmployeeDao employeeDao; + @Autowired private RoleEmployeeDao roleEmployeeDao; @@ -34,23 +34,30 @@ public class EmployeeCacheManager { */ @CacheEvict({CacheModuleConst.Employee.SINGLE_EMPLOYEE_CACHE, CacheModuleConst.Employee.SINGLE_EMPLOYEE_ROLE_CACHE}) public void clearCacheByEmployeeId(Long employeeId) { - log.info("clear SINGLE_EMPLOYEE_CACHE and SINGLE_EMPLOYEE_ROLE_CACHE {}",employeeId); + log.info("clear SINGLE_EMPLOYEE_CACHE and SINGLE_EMPLOYEE_ROLE_CACHE {}", employeeId); } + /** + * 清除businessId为部门id的缓存信息 + * + * @param departmentId + */ @CacheEvict({CacheModuleConst.Employee.DEPARTMENT_EMPLOYEE_CACHE}) public void clearCacheByDepartmentId(Long departmentId) { - log.info("clear DEPARTMENT_EMPLOYEE_CACHE {}",departmentId); + log.info("clear DEPARTMENT_EMPLOYEE_CACHE {}", departmentId); } /** * 缓存某个部门下的员工 + * cacheKey = CacheKeyConst.Employee + * businessId = departmentId * * @param departmentId * @return */ @Cacheable(CacheModuleConst.Employee.DEPARTMENT_EMPLOYEE_CACHE) public List departmentEmployeeCache(Long departmentId) { - List employeeEntityList = employeeDao.selectByDepartmentId(departmentId, false, false); + List employeeEntityList = employeeDao.selectByDepartmentId(departmentId, null, null, false); return employeeEntityList; } @@ -73,7 +80,7 @@ public class EmployeeCacheManager { } /** - * 单个员工的角色缓存 + * 单个员工的缓存 * * @param employeeId * @return diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeConst.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeConst.java deleted file mode 100644 index 7f816206..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeConst.java +++ /dev/null @@ -1,15 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.employee; - -/** - * @author 罗伊 - * @date 2021-01-31 0:00 - */ - class EmployeeConst { - - static final class Password { - - static final String DEFAULT = "123456"; - - static final String SALT_FORMAT = "smartAdmin_%s"; - } -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeController.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeController.java index d902345b..141daebc 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeController.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeController.java @@ -2,15 +2,16 @@ package net.lab1024.smartadmin.service.module.system.employee; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst; import net.lab1024.smartadmin.service.common.controller.SystemBaseController; -import net.lab1024.smartadmin.service.common.domain.PageResultDTO; -import net.lab1024.smartadmin.service.common.domain.ResponseDTO; -import net.lab1024.smartadmin.service.module.system.employee.domain.dto.*; -import net.lab1024.smartadmin.service.module.system.employee.domain.vo.EmployeeVO; -import net.lab1024.smartadmin.service.common.util.SmartEmployeeTokenUtil; +import net.lab1024.smartadmin.service.common.domain.PageResult; +import net.lab1024.smartadmin.service.common.util.SmartRequestUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import net.lab1024.smartadmin.service.common.annoation.NoValidPrivilege; +import net.lab1024.smartadmin.service.common.domain.ResponseDTO; +import net.lab1024.smartadmin.service.constant.SwaggerTagConst; +import net.lab1024.smartadmin.service.module.system.employee.domain.form.*; +import net.lab1024.smartadmin.service.module.system.employee.domain.vo.EmployeeVO; import javax.validation.Valid; import java.util.List; @@ -18,96 +19,79 @@ import java.util.List; /** * 员工管理 * - * @author 开云 - * @date 2017年12月19日上午11:34:52 + * @author zhuoda + * @date 2021年09月19日上午21:34:52 */ @RestController -@Api(tags = {SwaggerTagConst.Admin.MANAGER_EMPLOYEE}) +@Api(tags = {SwaggerTagConst.System.EMPLOYEE}) public class EmployeeController extends SystemBaseController { @Autowired private EmployeeService employeeService; @PostMapping("/employee/query") - @ApiOperation(value = "员工管理查询", notes = "员工管理查询 @author 开云") - public ResponseDTO> query(@Valid @RequestBody EmployeeQueryForm query) { - return employeeService.queryEmployeeList(query); + @ApiOperation(value = "员工管理查询 @author zhuoda") + public ResponseDTO> query(@Valid @RequestBody EmployeeQueryForm query) { + return employeeService.queryEmployee(query); } - @ApiOperation(value = "添加员工", notes = "@author 罗伊") + @ApiOperation(value = "添加员工 @author zhuoda") @PostMapping("/employee/add") - public ResponseDTO addEmployee(@Valid @RequestBody EmployeeAddDTO addDTO) { - addDTO.setUpdateId(SmartEmployeeTokenUtil.getRequestEmployeeId()); - return employeeService.addEmployee(addDTO); + public ResponseDTO addEmployee(@Valid @RequestBody EmployeeAddForm employeeAddForm) { + employeeAddForm.setUpdateId(SmartRequestUtil.getRequestEmployeeId()); + return employeeService.addEmployee(employeeAddForm); } - @ApiOperation(value = "更新员工禁用状态", notes = "@author 罗伊") + @ApiOperation(value = "更新员工 @author zhuoda") + @PostMapping("/employee/update") + public ResponseDTO updateEmployee(@Valid @RequestBody EmployeeUpdateForm employeeUpdateForm) { + employeeUpdateForm.setUpdateId(SmartRequestUtil.getRequestEmployeeId()); + return employeeService.updateEmployee(employeeUpdateForm); + } + + @ApiOperation(value = "更新员工禁用/启用状态 @author zhuoda") @GetMapping("/employee/update/disabled/{employeeId}") public ResponseDTO updateDisableFlag(@PathVariable Long employeeId) { return employeeService.updateDisableFlag(employeeId); } - @ApiOperation(value = "批量更新员工禁用状态", notes = "@author 罗伊") - @PostMapping("/employee/update/batch/disabled") - public ResponseDTO batchUpdateDisableFlag(@Valid @RequestBody EmployeeDisabledUpdateDTO updateDTO) { - return employeeService.batchUpdateDisableFlag(updateDTO); - } - @ApiOperation(value = "更新员工信息", notes = "@author 罗伊") - @PostMapping("/employee/update") - public ResponseDTO updateEmployee(@Valid @RequestBody EmployeeUpdateDTO updateDTO) { - updateDTO.setUpdateId(SmartEmployeeTokenUtil.getRequestEmployeeId()); - return employeeService.updateEmployee(updateDTO); - } - - @ApiOperation(value = "删除员工", notes = "@author 罗伊") - @GetMapping("/employee/delete/{employeeId}") - public ResponseDTO deleteEmployeeById(@PathVariable Long employeeId) { - return employeeService.deleteEmployeeById(employeeId); - } - - @ApiOperation(value = "批量删除员工", notes = "@author 善逸") + @ApiOperation(value = "批量删除员工 @author zhuoda") @GetMapping("/employee/update/batch/delete") - public ResponseDTO batchUpdateDeleteFlag(@RequestParam("employeeIdList")List employeeIdList) { + public ResponseDTO batchUpdateDeleteFlag(@RequestParam("employeeIdList") List employeeIdList) { return employeeService.batchUpdateDeleteFlag(employeeIdList); } - @ApiOperation(value = "批量调整员工部门", notes = "@author 善逸") + @ApiOperation(value = "批量调整员工部门 @author zhuoda") @PostMapping("/employee/update/batch/department") - public ResponseDTO batchUpdateDepartment(@Valid @RequestBody EmployeeDepartmentUpdateDTO updateDto) { - return employeeService.batchUpdateDepartment(updateDto); + public ResponseDTO batchUpdateDepartment(@Valid @RequestBody EmployeeBatchUpdateDepartmentForm batchUpdateDepartmentForm) { + return employeeService.batchUpdateDepartment(batchUpdateDepartmentForm); } - @ApiOperation(value = "单个员工角色授权", notes = "@author 罗伊") - @PostMapping("/employee/update/roles") - public ResponseDTO updateRoles(@Valid @RequestBody EmployeeRoleUpdateDTO updateRolesDTO) { - return employeeService.updateRole(updateRolesDTO); + @ApiOperation(value = "修改密码 @author zhuoda") + @PostMapping("/employee/update/password") + @NoValidPrivilege + public ResponseDTO updatePassword(@Valid @RequestBody EmployeeUpdatePasswordForm updatePasswordForm) { + updatePasswordForm.setEmployeeId(SmartRequestUtil.getRequestEmployeeId()); + return employeeService.updatePassword(updatePasswordForm); } - @ApiOperation(value = "修改密码", notes = "@author 罗伊") - @PostMapping("/employee/update/pwd") - public ResponseDTO updatePwd(@Valid @RequestBody EmployeeUpdatePwdDTO updatePwdDTO) { - updatePwdDTO.setEmployeeId(SmartEmployeeTokenUtil.getRequestEmployeeId()); - return employeeService.updatePwd(updatePwdDTO); - } - - @ApiOperation(value = "查询员工-根据部门id", notes = "@author 罗伊") - @GetMapping("/employee/query/dept/{deptId}") - public ResponseDTO> listByDepartmentId(@PathVariable Long deptId) { - return employeeService.getEmployeeByDeptId(deptId); - } - - @ApiOperation("查询所有员工 by 善逸") - @GetMapping("/employee/queryAll") - public ResponseDTO> queryAllEmploy(@RequestParam(value = "disabledFlag", required = false) Boolean disabledFlag) { - return employeeService.queryAllEmploy(disabledFlag); - } - - @ApiOperation(value = "重置员工密码", notes = "@author 罗伊") - @GetMapping("/employee/update/pwd/reset/{employeeId}") + @ApiOperation(value = "重置员工密码 @author zhuoda") + @GetMapping("/employee/update/password/reset/{employeeId}") public ResponseDTO resetPassword(@PathVariable Integer employeeId) { return employeeService.resetPassword(employeeId); } + @ApiOperation(value = "查询员工-根据部门id @author zhuoda") + @GetMapping("/employee/getAllEmployeeByDepartmentId/{departmentId}") + public ResponseDTO> getAllEmployeeByDepartmentId(@PathVariable Long departmentId) { + return employeeService.getAllEmployeeByDepartmentId(departmentId, Boolean.FALSE); + } + + @ApiOperation("查询所有员工 @author zhuoda") + @GetMapping("/employee/queryAll") + public ResponseDTO> queryAllEmployee(@RequestParam(value = "disabledFlag", required = false) Boolean disabledFlag) { + return employeeService.queryAllEmployee(disabledFlag, SmartRequestUtil.getRequestEmployee()); + } } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeDao.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeDao.java index 322a1668..4d604e40 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeDao.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeDao.java @@ -2,13 +2,12 @@ package net.lab1024.smartadmin.service.module.system.employee; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.service.module.system.employee.domain.entity.EmployeeEntity; +import net.lab1024.smartadmin.service.module.system.employee.domain.form.EmployeeQueryForm; +import net.lab1024.smartadmin.service.module.system.employee.domain.vo.EmployeeVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Component; -import net.lab1024.smartadmin.service.module.system.employee.domain.dto.EmployeeDTO; -import net.lab1024.smartadmin.service.module.system.employee.domain.dto.EmployeeQueryForm; -import net.lab1024.smartadmin.service.module.system.employee.domain.entity.EmployeeEntity; -import net.lab1024.smartadmin.service.module.system.employee.domain.vo.EmployeeVO; import java.util.Collection; import java.util.List; @@ -16,7 +15,7 @@ import java.util.List; /** * 员工dao接口 * - * @author 开云 + * @author lidoudou * @date 2017年12月19日下午1:36:30 */ @Mapper @@ -26,27 +25,19 @@ public interface EmployeeDao extends BaseMapper { * 查询员工列表 * * @param page - * @param queryDTO + * @param queryForm * @return */ - List queryEmployee(Page page, @Param("queryDTO") EmployeeQueryForm queryDTO); + List queryEmployee(Page page, @Param("queryForm") EmployeeQueryForm queryForm); /** - * 查询员工列表 + * 查询员工 * - * @param queryDTO + * @param queryForm * @return */ - List queryEmployee(@Param("queryDTO") EmployeeQueryForm queryDTO); + List queryEmployee(@Param("queryForm") EmployeeQueryForm queryForm); - /** - * 批量更新禁用状态 - * - * @param employeeIdList - * @param disabledFlag - */ - void batchUpdateDisableFlag(@Param("employeeIdList") List employeeIdList, - @Param("disabledFlag") Boolean disabledFlag); /** * 更新单个 @@ -56,17 +47,6 @@ public interface EmployeeDao extends BaseMapper { */ void updateDisableFlag(@Param("id") Long id, @Param("disabledFlag") Boolean disabledFlag); - /** - * 根据 账号 密码 查询 - * - * @param loginName - * @param loginPwd - * @param deletedFlag - * @return - */ - EmployeeEntity selectByLoginNameAndPwd(@Param("loginName") String loginName, - @Param("loginPwd") String loginPwd, - @Param("deletedFlag") Boolean deletedFlag); /** * 通过登录名查询 @@ -75,9 +55,20 @@ public interface EmployeeDao extends BaseMapper { * @param disabledFlag * @return */ - EmployeeDTO getByLoginName(@Param("loginName") String loginName, - @Param("disabledFlag") Boolean disabledFlag, - @Param("deletedFlag") Boolean deletedFlag); + EmployeeEntity getByLoginName(@Param("loginName") String loginName, + @Param("disabledFlag") Boolean disabledFlag); + + + /** + * 通过姓名查询 + * + * @param actualName + * @param disabledFlag + * @return + */ + EmployeeEntity getByActualName(@Param("actualName") String actualName, + @Param("disabledFlag") Boolean disabledFlag + ); /** * 通过手机号查询 @@ -86,23 +77,22 @@ public interface EmployeeDao extends BaseMapper { * @param disabledFlag * @return */ - EmployeeDTO getByPhone(@Param("phone") String phone, @Param("disabledFlag") Boolean disabledFlag); + EmployeeEntity getByPhone(@Param("phone") String phone, @Param("disabledFlag") Boolean disabledFlag); /** * 获取所有员工 * * @return */ - List listAll(); + List listAll(); /** * 获取某个部门员工数 * * @param departmentId - * @param deletedFlag 可以null * @return */ - Integer countByDepartmentId(@Param("departmentId") Long departmentId, @Param("deletedFlag") Boolean deletedFlag); + Integer countByDepartmentId(@Param("departmentId") Long departmentId); /** * 获取一批员工 @@ -110,7 +100,7 @@ public interface EmployeeDao extends BaseMapper { * @param employeeIds * @return */ - List getEmployeeByIds(@Param("ids") Collection employeeIds); + List getEmployeeByIds(@Param("ids") Collection employeeIds); /** @@ -119,7 +109,7 @@ public interface EmployeeDao extends BaseMapper { * @param employeeId * @return */ - EmployeeDTO getEmployeeById(@Param("id") Long employeeId); + EmployeeVO getEmployeeById(@Param("id") Long employeeId); /** @@ -127,10 +117,21 @@ public interface EmployeeDao extends BaseMapper { * * @param departmentId * @param disabledFlag - * @param deletedFlag * @return */ - List selectByDepartmentId(@Param("departmentId") Long departmentId, @Param("disabledFlag") Boolean disabledFlag, @Param("deletedFlag") Boolean deletedFlag); + List selectByDepartmentId(@Param("departmentId") Long departmentId, @Param("disabledFlag") Boolean disabledFlag); + + + /** + * 查询某些部门下用户名是xxx的员工 + * + * @param departmentIdList + * @param actualName + * @param disabledFlag + * @return + */ + List selectByActualName(@Param("departmentIdList") List departmentIdList, @Param("actualName") String actualName, @Param("disabledFlag") Boolean disabledFlag); + /** * 获取某批部门的员工Id @@ -138,24 +139,25 @@ public interface EmployeeDao extends BaseMapper { * @param departmentIds * @return */ - List getEmployeeIdByDepartmentIdList(@Param("departmentIds") List departmentIds, @Param("disabledFlag") Boolean disabledFlag, @Param("deletedFlag") Boolean deletedFlag); + List getEmployeeIdByDepartmentIdList(@Param("departmentIds") List departmentIds, @Param("disabledFlag") Boolean disabledFlag); /** * 获取所有 + * + * @param leaveFlag * @param disabledFlag - * @param deletedFlag * @return */ - List getEmployeeId( @Param("disabledFlag") Boolean disabledFlag, @Param("deletedFlag") Boolean deletedFlag); + List getEmployeeId(@Param("leaveFlag") Boolean leaveFlag, @Param("disabledFlag") Boolean disabledFlag); /** * 获取某个部门的员工Id + * * @param departmentId * @param disabledFlag - * @param deletedFlag * @return */ - List getEmployeeIdByDepartmentId(@Param("departmentId") Long departmentId, @Param("disabledFlag") Boolean disabledFlag, @Param("deletedFlag") Boolean deletedFlag); + List getEmployeeIdByDepartmentId(@Param("departmentId") Long departmentId, @Param("disabledFlag") Boolean disabledFlag); /** * 员工重置密码 diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeManager.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeManager.java index b3c060e0..a0af048d 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeManager.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeManager.java @@ -7,8 +7,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import net.lab1024.smartadmin.service.module.system.employee.domain.entity.EmployeeEntity; -import net.lab1024.smartadmin.service.module.system.role.roleemployee.RoleEmployeeManager; -import net.lab1024.smartadmin.service.module.system.role.roleemployee.domain.RoleEmployeeEntity; +import net.lab1024.smartadmin.service.module.system.role.domain.entity.RoleEmployeeEntity; +import net.lab1024.smartadmin.service.module.system.role.manager.RoleEmployeeManager; import java.util.List; import java.util.stream.Collectors; @@ -16,7 +16,7 @@ import java.util.stream.Collectors; /** * 员工 manager * - * @author 胡克 + * @author Turbolisten * @date 2021/7/28 19:15 */ @Service diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeService.java index 121bf653..822e4d4c 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeService.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/EmployeeService.java @@ -3,41 +3,43 @@ package net.lab1024.smartadmin.service.module.system.employee; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.collect.Lists; import net.lab1024.smartadmin.service.common.code.UserErrorCode; -import net.lab1024.smartadmin.service.common.domain.PageResultDTO; +import net.lab1024.smartadmin.service.common.domain.PageResult; import net.lab1024.smartadmin.service.common.domain.ResponseDTO; import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; import net.lab1024.smartadmin.service.common.util.SmartPageUtil; -import net.lab1024.smartadmin.service.module.system.department.DepartmentDao; +import net.lab1024.smartadmin.service.module.system.department.dao.DepartmentDao; import net.lab1024.smartadmin.service.module.system.department.domain.entity.DepartmentEntity; -import net.lab1024.smartadmin.service.module.system.employee.domain.dto.*; +import net.lab1024.smartadmin.service.module.system.department.domain.vo.DepartmentVO; +import net.lab1024.smartadmin.service.module.system.department.service.DepartmentCacheService; import net.lab1024.smartadmin.service.module.system.employee.domain.entity.EmployeeEntity; +import net.lab1024.smartadmin.service.module.system.employee.domain.form.*; import net.lab1024.smartadmin.service.module.system.employee.domain.vo.EmployeeVO; -import net.lab1024.smartadmin.service.module.system.login.domain.EmployeeLoginBO; -import net.lab1024.smartadmin.service.module.system.login.domain.EmployeeLoginInfoDTO; -import net.lab1024.smartadmin.service.module.system.menu.MenuEmployeeService; -import net.lab1024.smartadmin.service.module.system.role.roleemployee.RoleEmployeeDao; -import net.lab1024.smartadmin.service.module.system.role.roleemployee.domain.RoleEmployeeEntity; +import net.lab1024.smartadmin.service.module.system.login.domain.LoginUserDetail; +import net.lab1024.smartadmin.service.module.system.login.domain.RequestEmployee; +import net.lab1024.smartadmin.service.module.system.menu.service.MenuEmployeeService; +import net.lab1024.smartadmin.service.module.system.role.dao.RoleEmployeeDao; +import net.lab1024.smartadmin.service.module.system.role.domain.vo.RoleEmployeeVO; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; /** * 员工管理 * - * @author 罗伊 + * @author yandanyang * @date 2021年01月21日上午11:54:52 */ @Service public class EmployeeService { + private static final String DEFAULT_PASSWORD = "123456"; + + private static final String PASSWORD_SALT_FORMAT = "smart_%_admin_$%^&*"; + @Autowired private EmployeeDao employeeDao; @@ -54,7 +56,9 @@ public class EmployeeService { private RoleEmployeeDao roleEmployeeDao; @Autowired - private EmployeeCacheManager employeeCacheManager; + private EmployeeCacheService employeeCacheService; + @Autowired + private DepartmentCacheService departmentCacheService; /** * 获取员工登录信息 @@ -62,12 +66,13 @@ public class EmployeeService { * @param employeeId * @return */ - public EmployeeLoginInfoDTO getById(Long employeeId) { - EmployeeEntity employeeEntity = employeeCacheManager.singleEmployeeCache(employeeId); - List roleIdList = employeeCacheManager.singleEmployeeRoleCache(employeeId); + public RequestEmployee getById(Long employeeId) { + EmployeeEntity employeeEntity = employeeCacheService.singleEmployeeCache(employeeId); + //获取员工角色缓存 + List roleIdList = employeeCacheService.singleEmployeeRoleCache(employeeId); if (employeeEntity != null) { Boolean isSuperman = menuEmployeeService.isSuperman(employeeId); - EmployeeLoginInfoDTO loginDTO = SmartBeanUtil.copy(employeeEntity, EmployeeLoginInfoDTO.class); + RequestEmployee loginDTO = SmartBeanUtil.copy(employeeEntity, RequestEmployee.class); loginDTO.setEmployeeId(employeeId); loginDTO.setIsSuperMan(isSuperman); loginDTO.setRoleList(roleIdList); @@ -82,78 +87,88 @@ public class EmployeeService { * @param employeeId * @return */ - public EmployeeLoginBO getBoById(Long employeeId) { - EmployeeEntity employeeEntity = employeeCacheManager.singleEmployeeCache(employeeId); - List roleIdList = employeeCacheManager.singleEmployeeRoleCache(employeeId); - if (employeeEntity != null) { - Boolean isSuperman = menuEmployeeService.isSuperman(employeeId); - EmployeeLoginBO loginDTO = SmartBeanUtil.copy(employeeEntity, EmployeeLoginBO.class); - loginDTO.setEmployeeId(employeeId); - loginDTO.setIsSuperMan(isSuperman); - loginDTO.setRoleList(roleIdList); - return loginDTO; + public LoginUserDetail getBoById(Long employeeId) { + EmployeeEntity employeeEntity = employeeCacheService.singleEmployeeCache(employeeId); + //获取员工角色缓存 + List roleIdList = employeeCacheService.singleEmployeeRoleCache(employeeId); + if (employeeEntity == null) { + return null; } - return null; + Boolean isSuperman = menuEmployeeService.isSuperman(employeeId); + LoginUserDetail loginDTO = SmartBeanUtil.copy(employeeEntity, LoginUserDetail.class); + loginDTO.setEmployeeId(employeeId); + loginDTO.setIsSuperMan(isSuperman); + loginDTO.setRoleList(roleIdList); + return loginDTO; } /** * 查询员工列表 * - * @param queryDTO + * @param employeeQueryForm * @return */ - public ResponseDTO> queryEmployeeList(EmployeeQueryForm queryDTO) { - queryDTO.setDeletedFlag(false); - Page pageParam = SmartPageUtil.convert2PageQuery(queryDTO); - List employeeList = employeeDao.queryEmployee(pageParam, queryDTO); + public ResponseDTO> queryEmployee(EmployeeQueryForm employeeQueryForm) { + Page pageParam = SmartPageUtil.convert2PageQuery(employeeQueryForm); + List employeeList = employeeDao.queryEmployee(pageParam, employeeQueryForm); if (CollectionUtils.isEmpty(employeeList)) { - PageResultDTO pageResultDTO = SmartPageUtil.convert2PageResult(pageParam, employeeList); - return ResponseDTO.ok(pageResultDTO); + PageResult PageResult = SmartPageUtil.convert2PageResult(pageParam, employeeList); + return ResponseDTO.ok(PageResult); } - // 查询员工角色 + List employeeIdList = employeeList.stream().map(EmployeeVO::getId).collect(Collectors.toList()); - List roleEmployeeEntityList = roleEmployeeDao.selectRoleIdByEmployeeIdList(employeeIdList); - Map> employeeRoleIdListMap = roleEmployeeEntityList.stream().collect(Collectors.groupingBy(RoleEmployeeEntity::getEmployeeId, Collectors.mapping(RoleEmployeeEntity::getRoleId, Collectors.toList()))); - // 写入角色ID + // 查询员工角色 + List roleEmployeeEntityList = roleEmployeeDao.selectRoleByEmployeeIdList(employeeIdList); + Map> employeeRoleIdListMap = roleEmployeeEntityList.stream().collect(Collectors.groupingBy(RoleEmployeeVO::getEmployeeId, Collectors.mapping(RoleEmployeeVO::getRoleId, Collectors.toList()))); + Map> employeeRoleNameListMap = roleEmployeeEntityList.stream().collect(Collectors.groupingBy(RoleEmployeeVO::getEmployeeId, Collectors.mapping(RoleEmployeeVO::getRoleName, Collectors.toList()))); + // 查询员工部门 + Map departmentNameMap = departmentCacheService.departmentRouteCache(); + employeeList.forEach(e -> { e.setRoleIdList(employeeRoleIdListMap.getOrDefault(e.getId(), Lists.newArrayList())); + e.setRoleNameList(employeeRoleNameListMap.getOrDefault(e.getId(), Lists.newArrayList())); + e.setDepartmentName(departmentNameMap.getOrDefault(e.getDepartmentId(), "")); }); - PageResultDTO pageResultDTO = SmartPageUtil.convert2PageResult(pageParam, employeeList); - return ResponseDTO.ok(pageResultDTO); + PageResult PageResult = SmartPageUtil.convert2PageResult(pageParam, employeeList); + return ResponseDTO.ok(PageResult); } /** * 新增员工 * - * @param addDTO + * @param employeeAddForm * @return */ - public ResponseDTO addEmployee(EmployeeAddDTO addDTO) { + public synchronized ResponseDTO addEmployee(EmployeeAddForm employeeAddForm) { // 校验名称是否重复 - EmployeeDTO employeeDTO = employeeDao.getByLoginName(addDTO.getLoginName(), false, false); - if (null != employeeDTO) { - return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "员工名称重复"); + EmployeeEntity employeeEntity = employeeDao.getByLoginName(employeeAddForm.getLoginName(), false); + if (null != employeeEntity) { + return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "登录名重复"); + } + // 校验姓名是否重复 + employeeEntity = employeeDao.getByActualName(employeeAddForm.getActualName(), false); + if (null != employeeEntity) { + return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "姓名重复"); } // 校验电话是否存在 - employeeDTO = employeeDao.getByPhone(addDTO.getPhone(), false); - if (null != employeeDTO) { + employeeEntity = employeeDao.getByPhone(employeeAddForm.getPhone(), false); + if (null != employeeEntity) { return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "手机号已存在"); } // 部门是否存在 - Long departmentId = addDTO.getDepartmentId(); + Long departmentId = employeeAddForm.getDepartmentId(); DepartmentEntity department = departmentDao.selectById(departmentId); if (department == null) { return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "部门不存在"); } - EmployeeEntity entity = SmartBeanUtil.copy(addDTO, EmployeeEntity.class); + EmployeeEntity entity = SmartBeanUtil.copy(employeeAddForm, EmployeeEntity.class); // 设置密码 默认密码 - entity.setLoginPwd(getEncryptPwd(null)); + entity.setLoginPwd(getEncryptPwd(DEFAULT_PASSWORD)); // 保存数据 - employeeManager.saveEmployee(entity, addDTO.getRoleIdList()); - - employeeCacheManager.clearCacheByDepartmentId(departmentId); + employeeManager.saveEmployee(entity, employeeAddForm.getRoleIdList()); + employeeCacheService.clearCacheByDepartmentId(departmentId); return ResponseDTO.ok(); } @@ -161,45 +176,56 @@ public class EmployeeService { /** * 更新员工 * - * @param updateDTO + * @param employeeUpdateForm * @return */ - public ResponseDTO updateEmployee(EmployeeUpdateDTO updateDTO) { - Long employeeId = updateDTO.getId(); + public synchronized ResponseDTO updateEmployee(EmployeeUpdateForm employeeUpdateForm) { + + Long employeeId = employeeUpdateForm.getId(); EmployeeEntity employeeEntity = employeeDao.selectById(employeeId); if (null == employeeEntity) { return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); } - Long departmentId = updateDTO.getDepartmentId(); + + // 部门是否存在 + Long departmentId = employeeUpdateForm.getDepartmentId(); DepartmentEntity departmentEntity = departmentDao.selectById(departmentId); if (departmentEntity == null) { - return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); + return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "部门不存在"); } - EmployeeDTO employeeDTO = employeeDao.getByLoginName(updateDTO.getLoginName(), false, false); - if (null != employeeDTO && !Objects.equals(employeeDTO.getId(), employeeId)) { - return ResponseDTO.error(UserErrorCode.ALREADY_EXIST); + + + EmployeeEntity existEntity = employeeDao.getByLoginName(employeeUpdateForm.getLoginName(), false); + if (null != existEntity && !Objects.equals(existEntity.getId(), employeeId)) { + return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "登录名重复"); } - employeeDTO = employeeDao.getByPhone(updateDTO.getLoginName(), false); - if (null != employeeDTO && !Objects.equals(employeeDTO.getId(), employeeId)) { - return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); + + existEntity = employeeDao.getByPhone(employeeUpdateForm.getPhone(), false); + if (null != existEntity && !Objects.equals(existEntity.getId(), employeeId)) { + return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "手机号已存在"); + } + + existEntity = employeeDao.getByActualName(employeeUpdateForm.getActualName(), false); + if (null != existEntity) { + return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "姓名重复"); } // 不更新密码 - EmployeeEntity entity = SmartBeanUtil.copy(updateDTO, EmployeeEntity.class); + EmployeeEntity entity = SmartBeanUtil.copy(employeeUpdateForm, EmployeeEntity.class); entity.setLoginPwd(null); // 更新数据 - employeeManager.updateEmployee(entity, updateDTO.getRoleIdList()); + employeeManager.updateEmployee(entity, employeeUpdateForm.getRoleIdList()); // 清除缓存 - employeeCacheManager.clearCacheByEmployeeId(employeeId); - employeeCacheManager.clearCacheByDepartmentId(departmentId); + employeeCacheService.clearCacheByEmployeeId(employeeId); + employeeCacheService.clearCacheByDepartmentId(departmentId); return ResponseDTO.ok(); } /** - * 更新禁用状态 + * 更新禁用/启用状态 * * @param employeeId * @return @@ -215,33 +241,11 @@ public class EmployeeService { employeeDao.updateDisableFlag(employeeId, !employeeEntity.getDisabledFlag()); - employeeCacheManager.clearCacheByEmployeeId(employeeId); - employeeCacheManager.clearCacheByDepartmentId(employeeEntity.getDepartmentId()); + employeeCacheService.clearCacheByEmployeeId(employeeId); + employeeCacheService.clearCacheByDepartmentId(employeeEntity.getDepartmentId()); return ResponseDTO.ok(); } - /** - * 批量更新员工状态 - * - * @param batchUpdateStatusDTO - * @return - */ - public ResponseDTO batchUpdateDisableFlag(EmployeeDisabledUpdateDTO batchUpdateStatusDTO) { - List employeeIdList = batchUpdateStatusDTO.getEmployeeIdList(); - List employeeEntityList = employeeDao.selectBatchIds(employeeIdList); - if (employeeIdList.size() != employeeEntityList.size()) { - return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); - } - - employeeDao.batchUpdateDisableFlag(employeeIdList, batchUpdateStatusDTO.getDisabledFlag()); - - // 清除缓存 - employeeEntityList.forEach(e -> { - employeeCacheManager.clearCacheByEmployeeId(e.getId()); - employeeCacheManager.clearCacheByDepartmentId(e.getDepartmentId()); - }); - return ResponseDTO.ok(); - } /** * 批量删除员工 @@ -257,8 +261,9 @@ public class EmployeeService { if (CollectionUtils.isEmpty(employeeEntityList)) { return ResponseDTO.ok(); } + + // 更新删除 List deleteList = employeeIdList.stream().map(e -> { - // 更新删除 EmployeeEntity updateEmployee = new EmployeeEntity(); updateEmployee.setId(e); updateEmployee.setDeletedFlag(true); @@ -268,42 +273,21 @@ public class EmployeeService { // 清除缓存 employeeEntityList.forEach(e -> { - employeeCacheManager.clearCacheByEmployeeId(e.getId()); - employeeCacheManager.clearCacheByDepartmentId(e.getDepartmentId()); + employeeCacheService.clearCacheByEmployeeId(e.getId()); + employeeCacheService.clearCacheByDepartmentId(e.getDepartmentId()); }); return ResponseDTO.ok(); } - /** - * 删除员工 - * - * @param employeeId 员工ID - * @return - */ - public ResponseDTO deleteEmployeeById(Long employeeId) { - EmployeeEntity employeeEntity = employeeDao.selectById(employeeId); - if (null == employeeEntity) { - return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); - } - // 更新删除 - EmployeeEntity updateEmployee = new EmployeeEntity(); - updateEmployee.setId(employeeId); - updateEmployee.setDeletedFlag(true); - employeeDao.updateById(updateEmployee); - - employeeCacheManager.clearCacheByEmployeeId(employeeId); - employeeCacheManager.clearCacheByDepartmentId(employeeEntity.getDepartmentId()); - return ResponseDTO.ok(); - } /** * 批量更新部门 * - * @param updateDto + * @param batchUpdateDepartmentForm * @return */ - public ResponseDTO batchUpdateDepartment(EmployeeDepartmentUpdateDTO updateDto) { - List employeeIdList = updateDto.getEmployeeIdList(); + public ResponseDTO batchUpdateDepartment(EmployeeBatchUpdateDepartmentForm batchUpdateDepartmentForm) { + List employeeIdList = batchUpdateDepartmentForm.getEmployeeIdList(); List employeeEntityList = employeeDao.selectBatchIds(employeeIdList); if (employeeIdList.size() != employeeEntityList.size()) { return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); @@ -313,70 +297,49 @@ public class EmployeeService { // 更新删除 EmployeeEntity updateEmployee = new EmployeeEntity(); updateEmployee.setId(e); - updateEmployee.setDepartmentId(updateDto.getDepartmentId()); + updateEmployee.setDepartmentId(batchUpdateDepartmentForm.getDepartmentId()); return updateEmployee; }).collect(Collectors.toList()); employeeManager.updateBatchById(updateList); // 清除缓存 employeeEntityList.forEach(e -> { - employeeCacheManager.clearCacheByEmployeeId(e.getId()); - employeeCacheManager.clearCacheByDepartmentId(e.getDepartmentId()); + employeeCacheService.clearCacheByEmployeeId(e.getId()); + employeeCacheService.clearCacheByDepartmentId(e.getDepartmentId()); }); + employeeCacheService.clearCacheByDepartmentId(batchUpdateDepartmentForm.getDepartmentId()); return ResponseDTO.ok(); } - /** - * 更新用户角色 - * - * @param updateDTO - * @return - */ - public ResponseDTO updateRole(EmployeeRoleUpdateDTO updateDTO) { - Long employeeId = updateDTO.getEmployeeId(); - List roleIdList = updateDTO.getRoleIdList(); - - // 保存新的角色信息 - List roleEmployeeList = null; - if (CollectionUtils.isNotEmpty(roleIdList)) { - roleEmployeeList = roleIdList.stream() - .map(roleId -> new RoleEmployeeEntity(roleId, employeeId)) - .collect(Collectors.toList()); - } - - // 更新数据 - employeeManager.updateEmployeeRole(employeeId, roleEmployeeList); - return ResponseDTO.ok(); - } /** * 更新密码 * - * @param updatePwdDTO + * @param updatePasswordForm * @return */ - public ResponseDTO updatePwd(EmployeeUpdatePwdDTO updatePwdDTO) { - Long employeeId = updatePwdDTO.getEmployeeId(); + public ResponseDTO updatePassword(EmployeeUpdatePasswordForm updatePasswordForm) { + Long employeeId = updatePasswordForm.getEmployeeId(); EmployeeEntity employeeEntity = employeeDao.selectById(employeeId); if (employeeEntity == null) { return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); } // 校验原始密码 - String encryptPwd = getEncryptPwd(updatePwdDTO.getOldPwd()); + String encryptPwd = getEncryptPwd(updatePasswordForm.getOldPassword()); if (!Objects.equals(encryptPwd, employeeEntity.getLoginPwd())) { - return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); + return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "原密码有误,请重新输入"); } // 新旧密码相同 - String newPwd = updatePwdDTO.getPwd(); - if (Objects.equals(updatePwdDTO.getOldPwd(), newPwd)) { + String newPassword = updatePasswordForm.getNewPassword(); + if (Objects.equals(updatePasswordForm.getOldPassword(), newPassword)) { return ResponseDTO.ok(); } // 更新密码 EmployeeEntity updateEntity = new EmployeeEntity(); updateEntity.setId(employeeId); - updateEntity.setLoginPwd(getEncryptPwd(newPwd)); + updateEntity.setLoginPwd(getEncryptPwd(newPassword)); employeeDao.updateById(updateEntity); return ResponseDTO.ok(); @@ -388,12 +351,24 @@ public class EmployeeService { * @param departmentId * @return */ - public ResponseDTO> getEmployeeByDeptId(Long departmentId) { - List employeeEntityList = employeeCacheManager.departmentEmployeeCache(departmentId); + public ResponseDTO> getAllEmployeeByDepartmentId(Long departmentId, Boolean leaveFlag) { + List employeeEntityList = employeeCacheService.departmentEmployeeCache(departmentId); + if (leaveFlag != null) { + employeeEntityList = employeeEntityList.stream().filter(e -> e.getLeaveFlag().equals(leaveFlag)).collect(Collectors.toList()); + } + // 获取部门 + List departmentList = departmentCacheService.departmentCache(); + Optional departmentVO = departmentList.stream().filter(e -> e.getId().equals(departmentId)).findFirst(); if (CollectionUtils.isEmpty(employeeEntityList)) { return ResponseDTO.ok(Collections.emptyList()); } - List voList = SmartBeanUtil.copyList(employeeEntityList, EmployeeVO.class); + List voList = employeeEntityList.stream().map(e -> { + EmployeeVO employeeVO = SmartBeanUtil.copy(e, EmployeeVO.class); + if (departmentVO.isPresent()) { + employeeVO.setDepartmentName(departmentVO.get().getName()); + } + return employeeVO; + }).collect(Collectors.toList()); return ResponseDTO.ok(voList); } @@ -405,25 +380,19 @@ public class EmployeeService { * @return */ public ResponseDTO resetPassword(Integer employeeId) { - String md5Password = getEncryptPwd(null); - employeeDao.updatePassword(employeeId, md5Password); - return ResponseDTO.ok(); + employeeDao.updatePassword(employeeId, getEncryptPwd(DEFAULT_PASSWORD)); + return ResponseDTO.okMsg("重置密码为:" + DEFAULT_PASSWORD); } + /** * 获取 加密后 的密码 * - * @param pwd 密码为空 将使用原始密码 + * @param password * @return */ - public static String getEncryptPwd(String pwd) { - pwd = StringUtils.isBlank(pwd) ? EmployeeConst.Password.DEFAULT : pwd; - return DigestUtils.md5Hex(String.format(EmployeeConst.Password.SALT_FORMAT, pwd)); - } - - public static void main(String[] args) { - System.out.println(getEncryptPwd("123456")); - + public static String getEncryptPwd(String password) { + return DigestUtils.md5Hex(String.format(PASSWORD_SALT_FORMAT, password)); } /** @@ -431,13 +400,10 @@ public class EmployeeService { * * @return */ - public ResponseDTO> queryAllEmploy(Boolean disabledFlag) { - EmployeeQueryForm queryDTO = new EmployeeQueryForm(); - queryDTO.setDeletedFlag(Boolean.FALSE); - if (disabledFlag != null) { - queryDTO.setDisabledFlag(disabledFlag); - } - List employeeList = employeeDao.queryEmployee(queryDTO); + public ResponseDTO> queryAllEmployee(Boolean disabledFlag, RequestEmployee requestEmployee) { + EmployeeQueryForm employeeQueryForm = new EmployeeQueryForm(); + employeeQueryForm.setDisabledFlag(disabledFlag); + List employeeList = employeeDao.queryEmployee(employeeQueryForm); return ResponseDTO.ok(employeeList); } } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeDTO.java deleted file mode 100644 index 618806f4..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeDTO.java +++ /dev/null @@ -1,43 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.employee.domain.dto; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import java.time.LocalDateTime; - -/** - * 员工列表DTO - * - * @author 开云 - * @date 2017年12月21日上午09:09:31 - */ -@Data -public class EmployeeDTO { - - @ApiModelProperty("主键id") - private Long id; - - @ApiModelProperty("登录账号") - private String loginName; - - @ApiModelProperty("员工名称") - private String actualName; - - @ApiModelProperty("手机号码") - private String phone; - - @ApiModelProperty("部门id") - private Long departmentId; - - @ApiModelProperty("是否被禁用") - private Boolean disabledFlag; - - @ApiModelProperty("是否删除") - private Boolean deletedFlag; - - @ApiModelProperty("部门名称") - private String departmentName; - - @ApiModelProperty("创建时间") - private LocalDateTime createTime; -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeDisabledUpdateDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeDisabledUpdateDTO.java deleted file mode 100644 index 290e936b..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeDisabledUpdateDTO.java +++ /dev/null @@ -1,28 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.employee.domain.dto; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; -import java.util.List; - -/** - * 员工禁用状态更新 DTO - * - * @author listen - * @date 2021年07月29日 20:00 - */ -@Data -public class EmployeeDisabledUpdateDTO { - - @ApiModelProperty("员工id") - @NotEmpty(message = "员工id不能为空") - @Size(max = 99, message = "一次最多更新99次") - private List employeeIdList; - - @ApiModelProperty("禁用状态") - @NotNull(message = "禁用状态不能为空") - private Boolean disabledFlag; -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeQueryExportDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeQueryExportDTO.java deleted file mode 100644 index 7a4e93c2..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeQueryExportDTO.java +++ /dev/null @@ -1,36 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.employee.domain.dto; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import java.util.List; - -/** - * @author 1024lab - * 不带分页的查询条件 - */ -@Data -public class EmployeeQueryExportDTO { - - @ApiModelProperty(hidden = true) - private String phone; - - @ApiModelProperty("姓名") - private String actualName; - - @ApiModelProperty(hidden = true) - private String keyword; - - @ApiModelProperty(hidden = true) - private Long departmentId; - - @ApiModelProperty(hidden = true) - private Boolean disabledFlag; - - @ApiModelProperty(value = "删除状态", hidden = true) - private Boolean deletedFlag; - - @ApiModelProperty(value = "员工ID集合", hidden = true) - private List employeeIds; - -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/entity/EmployeeEntity.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/entity/EmployeeEntity.java index 8e60f27b..a042b6da 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/entity/EmployeeEntity.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/entity/EmployeeEntity.java @@ -4,14 +4,13 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import net.lab1024.smartadmin.service.common.enumeration.GenderEnum; import java.time.LocalDateTime; /** * 员工实体类 * - * @author 开云 + * @author lidoudou * @date 2017年12月19日下午1:34:48 */ @Data @@ -39,7 +38,7 @@ public class EmployeeEntity { /** * 性别 * - * @see GenderEnum + * @see net.lab1024.smartadmin.service.common.constant.GenderEnum */ private Integer gender; @@ -63,6 +62,11 @@ public class EmployeeEntity { */ private Boolean deletedFlag; + /** + * 是否离职 + */ + private Boolean leaveFlag; + /** * 备注 */ @@ -72,4 +76,9 @@ public class EmployeeEntity { private LocalDateTime createTime; + /** + * 是否校盈易导入数据 + */ + private Boolean importFlag; + } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeAddDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/form/EmployeeAddForm.java similarity index 82% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeAddDTO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/form/EmployeeAddForm.java index 89af2cc4..044dd00d 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeAddDTO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/form/EmployeeAddForm.java @@ -1,11 +1,12 @@ -package net.lab1024.smartadmin.service.module.system.employee.domain.dto; +package net.lab1024.smartadmin.service.module.system.employee.domain.form; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import net.lab1024.smartadmin.service.common.enumeration.GenderEnum; import net.lab1024.smartadmin.service.common.swagger.ApiModelPropertyEnum; -import net.lab1024.smartadmin.service.common.util.SmartVerificationUtil; +import net.lab1024.smartadmin.service.common.validator.enumeration.CheckEnum; import org.hibernate.validator.constraints.Length; +import net.lab1024.smartadmin.service.common.util.SmartVerificationUtil; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; @@ -14,11 +15,11 @@ import java.util.List; /** * 添加员工 * - * @author 开云 + * @author lidoudou * @date 2017年12月19日下午2:06:31 */ @Data -public class EmployeeAddDTO { +public class EmployeeAddForm { @ApiModelProperty("姓名") @NotNull(message = "姓名不能为空") @@ -31,6 +32,7 @@ public class EmployeeAddDTO { private String loginName; @ApiModelPropertyEnum(GenderEnum.class) + @CheckEnum(value = GenderEnum.class, message = "性别错误") private Integer gender; @ApiModelProperty("部门id") @@ -41,6 +43,10 @@ public class EmployeeAddDTO { @NotNull(message = "是否被禁用不能为空") private Boolean disabledFlag; + @ApiModelProperty("是否离职") + @NotNull(message = "是否离职不能为空") + private Boolean leaveFlag; + @ApiModelProperty("手机号") @NotNull(message = "手机号不能为空") @Pattern(regexp = SmartVerificationUtil.PHONE_REGEXP, message = "手机号格式不正确") diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeDepartmentUpdateDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/form/EmployeeBatchUpdateDepartmentForm.java similarity index 89% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeDepartmentUpdateDTO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/form/EmployeeBatchUpdateDepartmentForm.java index 55741420..3b7d515b 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeDepartmentUpdateDTO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/form/EmployeeBatchUpdateDepartmentForm.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.module.system.employee.domain.dto; +package net.lab1024.smartadmin.service.module.system.employee.domain.form; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -11,11 +11,11 @@ import java.util.List; /** * 员工更新部门 DTO * - * @author 善逸 + * @author lihaifan * @date 2021年07月29日 20:00 */ @Data -public class EmployeeDepartmentUpdateDTO { +public class EmployeeBatchUpdateDepartmentForm { @ApiModelProperty("员工id") @NotEmpty(message = "员工id不能为空") diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeQueryForm.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/form/EmployeeQueryForm.java similarity index 76% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeQueryForm.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/form/EmployeeQueryForm.java index 0fceb84d..582a6f33 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeQueryForm.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/form/EmployeeQueryForm.java @@ -1,8 +1,8 @@ -package net.lab1024.smartadmin.service.module.system.employee.domain.dto; +package net.lab1024.smartadmin.service.module.system.employee.domain.form; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import net.lab1024.smartadmin.service.common.domain.PageParamForm; +import net.lab1024.smartadmin.service.common.domain.PageParam; import org.hibernate.validator.constraints.Length; import javax.validation.constraints.Size; @@ -11,11 +11,11 @@ import java.util.List; /** * 员工列表DTO * - * @author 开云 + * @author lidoudou * @date 2017年12月21日上午09:09:31 */ @Data -public class EmployeeQueryForm extends PageParamForm { +public class EmployeeQueryForm extends PageParam { @ApiModelProperty("搜索词") @Length(max = 20, message = "搜索词最多20字符") @@ -31,6 +31,4 @@ public class EmployeeQueryForm extends PageParamForm { @Size(max = 99, message = "最多查询99个员工") private List employeeIdList; - @ApiModelProperty(hidden = true) - private Boolean deletedFlag; } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeUpdateDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/form/EmployeeUpdateForm.java similarity index 66% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeUpdateDTO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/form/EmployeeUpdateForm.java index 49a975e6..27d37cea 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeUpdateDTO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/form/EmployeeUpdateForm.java @@ -1,18 +1,19 @@ -package net.lab1024.smartadmin.service.module.system.employee.domain.dto; +package net.lab1024.smartadmin.service.module.system.employee.domain.form; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import net.lab1024.smartadmin.service.module.system.employee.domain.form.EmployeeAddForm; import javax.validation.constraints.NotNull; /** * 更新员工 * - * @author 开云 + * @author lidoudou * @date 2017年12月19日下午2:06:31 */ @Data -public class EmployeeUpdateDTO extends EmployeeAddDTO { +public class EmployeeUpdateForm extends EmployeeAddForm { @ApiModelProperty("员工id") @NotNull(message = "员工id不能为空") diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeUpdatePwdDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/form/EmployeeUpdatePasswordForm.java similarity index 88% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeUpdatePwdDTO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/form/EmployeeUpdatePasswordForm.java index 92ac023f..02425d8c 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeUpdatePwdDTO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/form/EmployeeUpdatePasswordForm.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.module.system.employee.domain.dto; +package net.lab1024.smartadmin.service.module.system.employee.domain.form; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -14,7 +14,7 @@ import javax.validation.constraints.Pattern; * @date 2018-02-23 下午 4:53 */ @Data -public class EmployeeUpdatePwdDTO { +public class EmployeeUpdatePasswordForm { @ApiModelProperty(hidden = true) private Long employeeId; @@ -22,10 +22,10 @@ public class EmployeeUpdatePwdDTO { @ApiModelProperty("原密码") @NotBlank(message = "原密码不能为空哦") @Pattern(regexp = SmartVerificationUtil.PWD_REGEXP, message = "原密码请输入6-15位(数字|大小写字母|小数点)") - private String oldPwd; + private String oldPassword; @ApiModelProperty("新密码") @NotBlank(message = "新密码不能为空哦") @Pattern(regexp = SmartVerificationUtil.PWD_REGEXP, message = "新密码请输入6-15位(数字|大小写字母|小数点)") - private String pwd; + private String newPassword; } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeRoleUpdateDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/form/EmployeeUpdateRoleForm.java similarity index 71% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeRoleUpdateDTO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/form/EmployeeUpdateRoleForm.java index 22b2e39f..94c54c65 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeRoleUpdateDTO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/form/EmployeeUpdateRoleForm.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.module.system.employee.domain.dto; +package net.lab1024.smartadmin.service.module.system.employee.domain.form; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -10,10 +10,15 @@ import java.util.List; /** * [ ] * - * @author 罗伊 + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 */ @Data -public class EmployeeRoleUpdateDTO { +public class EmployeeUpdateRoleForm { @ApiModelProperty("员工id") @NotNull(message = "员工id不能为空") diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/vo/EmployeeVO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/vo/EmployeeVO.java index aab63b02..b0860f71 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/vo/EmployeeVO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/vo/EmployeeVO.java @@ -2,9 +2,8 @@ package net.lab1024.smartadmin.service.module.system.employee.domain.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import net.lab1024.smartadmin.service.common.enumeration.GenderEnum; -import net.lab1024.smartadmin.service.common.swagger.ApiModelPropertyEnum; - +import net.lab1024.smartadmin.service.common.annoation.ApiModelPropertyEnum; +import net.lab1024.smartadmin.service.common.constant.GenderEnum; import java.time.LocalDateTime; import java.util.List; @@ -12,7 +11,7 @@ import java.util.List; * * [ ] * - * @author 罗伊 + * @author yandanyang * @date */ @Data @@ -39,6 +38,9 @@ public class EmployeeVO { @ApiModelProperty("是否被禁用") private Boolean disabledFlag; + @ApiModelProperty("是否离职") + private Boolean leaveFlag; + @ApiModelProperty("部门名称") private String departmentName; @@ -47,4 +49,7 @@ public class EmployeeVO { @ApiModelProperty("角色列表") private List roleIdList; + + @ApiModelProperty("角色名称列表") + private List roleNameList; } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/EmployeeLoginController.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/EmployeeLoginController.java deleted file mode 100644 index 617f4bd8..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/EmployeeLoginController.java +++ /dev/null @@ -1,53 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.login; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import net.lab1024.smartadmin.service.common.annoation.NoNeedLogin; -import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst; -import net.lab1024.smartadmin.service.common.controller.SystemBaseController; -import net.lab1024.smartadmin.service.common.domain.ResponseDTO; -import net.lab1024.smartadmin.service.module.system.employee.domain.dto.EmployeeLoginDTO; -import net.lab1024.smartadmin.service.module.system.login.domain.EmployeeLoginInfoDTO; -import net.lab1024.smartadmin.service.module.system.login.domain.EmployeeLoginVO; -import net.lab1024.smartadmin.service.common.util.SmartEmployeeTokenUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import javax.validation.Valid; - -/** - * 后台登录 - * - * @author 开云 - * @date 2017年12月19日上午11:46:04 - */ -@RestController -@Api(tags = {SwaggerTagConst.Admin.MANAGER_EMPLOYEE_LOGIN}) -public class EmployeeLoginController extends SystemBaseController { - - @Autowired - private EmployeeLoginService employeeLoginService; - - @NoNeedLogin - @ApiOperation("登录 by listen") - @PostMapping("/login") - public ResponseDTO login(@Valid @RequestBody EmployeeLoginDTO loginDTO) { - return employeeLoginService.login(loginDTO); - } - - @GetMapping("/login/get") - @ApiOperation("获取登录信息") - public ResponseDTO getSession() { - EmployeeLoginInfoDTO requestEmployee = SmartEmployeeTokenUtil.getRequestEmployee(); - return ResponseDTO.ok(employeeLoginService.getSession(requestEmployee)); - } - - @GetMapping("/logout") - @ApiOperation("退出登陆") - public ResponseDTO logout() { - return employeeLoginService.logoutByToken(SmartEmployeeTokenUtil.getRequestEmployeeId()); - } -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/EmployeeLoginService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/EmployeeLoginService.java deleted file mode 100644 index 01872516..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/EmployeeLoginService.java +++ /dev/null @@ -1,129 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.login; - -import lombok.extern.slf4j.Slf4j; -import net.lab1024.smartadmin.service.common.code.UserErrorCode; -import net.lab1024.smartadmin.service.common.constant.StringConst; -import net.lab1024.smartadmin.service.common.domain.ResponseDTO; -import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; -import net.lab1024.smartadmin.service.module.support.captcha.CaptchaService; -import net.lab1024.smartadmin.service.module.support.captcha.domain.CaptchaForm; -import net.lab1024.smartadmin.service.module.system.department.DepartmentDao; -import net.lab1024.smartadmin.service.module.system.department.domain.entity.DepartmentEntity; -import net.lab1024.smartadmin.service.module.system.employee.EmployeeDao; -import net.lab1024.smartadmin.service.module.system.employee.EmployeeService; -import net.lab1024.smartadmin.service.module.system.employee.domain.dto.EmployeeLoginDTO; -import net.lab1024.smartadmin.service.module.system.employee.domain.entity.EmployeeEntity; -import net.lab1024.smartadmin.service.module.system.login.domain.EmployeeLoginInfoDTO; -import net.lab1024.smartadmin.service.module.system.login.domain.EmployeeLoginVO; -import net.lab1024.smartadmin.service.module.system.menu.MenuEmployeeService; -import net.lab1024.smartadmin.service.module.system.menu.domain.MenuLoginBO; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -/** - * [ ] - * - * @author 罗伊 - */ -@Slf4j -@Service -public class EmployeeLoginService { - - @Autowired - private EmployeeDao employeeDao; - - @Autowired - private DepartmentDao departmentDao; - - @Autowired - private EmployeeLoginTokenService employeeLoginTokenService; - - @Autowired - private MenuEmployeeService menuEmployeeService; - - @Autowired - private EmployeeService employeeService; - - @Autowired - private CaptchaService captchaService; - - /** - * 员工登陆 - * - * @param loginDTO - * @return 返回用户登录信息 - */ - public ResponseDTO login(EmployeeLoginDTO loginDTO) { - // 校验图形验证码 - CaptchaForm captcha = loginDTO.getCaptcha(); - if (null != captcha) { - ResponseDTO res = captchaService.checkCaptcha(captcha.getCaptchaId(), captcha.getCaptcha()); - if (!res.getOk()) { - return ResponseDTO.error(res); - } - } - - String loginPwd = EmployeeService.getEncryptPwd(loginDTO.getLoginPwd()); - EmployeeEntity employeeEntity = employeeDao.selectByLoginNameAndPwd(loginDTO.getLoginName(), loginPwd, false); - if (null == employeeEntity) { - return ResponseDTO.error(UserErrorCode.LOGIN_FAILED); - } - - if (employeeEntity.getDisabledFlag()) { - return ResponseDTO.error(UserErrorCode.USER_STATUS_ERROR); - } - - // 生成 登录token - Long employeeId = employeeEntity.getId(); - String token = employeeLoginTokenService.generateToken(employeeId); - - // 判断是否为超管 - Boolean isSuperman = menuEmployeeService.isSuperman(employeeId); - - // 获取前端菜单以及功能权限 - MenuLoginBO menuLoginBORespDTO = menuEmployeeService.queryMenuTreeByEmployeeId(employeeId); - - // 查询部门 - DepartmentEntity deptEntity = departmentDao.selectById(employeeEntity.getDepartmentId()); - String deptName = null == deptEntity ? StringConst.EMPTY_STR : deptEntity.getName(); - // 返回登录结果 - EmployeeLoginVO loginResultDTO = SmartBeanUtil.copy(employeeEntity, EmployeeLoginVO.class); - loginResultDTO.setEmployeeId(employeeEntity.getId()); - loginResultDTO.setMenuTree(menuLoginBORespDTO.getMenuTree()); - loginResultDTO.setPointsList(menuLoginBORespDTO.getPointsList()); - loginResultDTO.setDepartmentName(deptName); - loginResultDTO.setToken(token); - loginResultDTO.setIsSuperMan(isSuperman); - return ResponseDTO.ok(loginResultDTO); - } - - /** - * 退出登陆,清除token缓存 - * - * @param employeeId - * @return - */ - public ResponseDTO logoutByToken(Long employeeId) { - return ResponseDTO.ok(); - } - - /** - * 重新获取前端localStorage信息 - * - * @param loginInfo - * @return - */ - public EmployeeLoginVO getSession(EmployeeLoginInfoDTO loginInfo) { - Long employeeId = loginInfo.getEmployeeId(); - - EmployeeLoginVO loginDTO = SmartBeanUtil.copy(loginInfo, EmployeeLoginVO.class); - // 获取前端菜单以及功能权限 - MenuLoginBO menuLoginBORespDTO = menuEmployeeService.queryMenuTreeByEmployeeId(employeeId); - loginDTO.setMenuTree(menuLoginBORespDTO.getMenuTree()); - loginDTO.setPointsList(menuLoginBORespDTO.getPointsList()); - //判断是否为超管 - Boolean isSuperman = menuEmployeeService.isSuperman(loginDTO.getEmployeeId()); - loginDTO.setIsSuperMan(isSuperman); - return loginDTO; - } -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/EmployeeLoginTokenService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/EmployeeLoginTokenService.java deleted file mode 100644 index 45ff7840..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/EmployeeLoginTokenService.java +++ /dev/null @@ -1,142 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.login; - -import io.jsonwebtoken.Claims; -import io.jsonwebtoken.Jwts; -import io.jsonwebtoken.SignatureAlgorithm; -import lombok.extern.slf4j.Slf4j; -import net.lab1024.smartadmin.service.common.enumeration.SystemEnvironmentEnum; -import net.lab1024.smartadmin.service.common.domain.SystemEnvironment; -import net.lab1024.smartadmin.service.module.system.employee.EmployeeService; -import net.lab1024.smartadmin.service.module.system.login.domain.EmployeeLoginBO; -import net.lab1024.smartadmin.service.module.system.login.domain.EmployeeLoginInfoDTO; -import org.apache.commons.lang3.math.NumberUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.Date; - -/** - * [ ] - * - * @author 罗伊 - */ -@Slf4j -@Service -public class EmployeeLoginTokenService { - - /** - * 默认 token 过期时间 1 天 - */ - private static final int EXPIRE_SECONDS = 24 * 3600; - - /** - * 默认 jwt key - */ - private static final String JWT_KEY = "smart-admin-jwt-key"; - - /** - * jwt加密字段 - */ - private static final String CLAIM_ID_KEY = "id"; - - @Autowired - private EmployeeService employeeService; - - @Autowired - private SystemEnvironment systemEnvironment; - - /** - * 生成 JWT TOKEN - * - * @param employeeId - * @return - * @auther listen - */ - public String generateToken(Long employeeId) { - long nowTimeMilli = System.currentTimeMillis(); - Claims jwtClaims = Jwts.claims(); - jwtClaims.put(CLAIM_ID_KEY, employeeId); - return Jwts.builder() - .setClaims(jwtClaims) - .setIssuedAt(new Date(nowTimeMilli)) - .setExpiration(new Date(nowTimeMilli + EXPIRE_SECONDS * 1000)) - .signWith(SignatureAlgorithm.HS512, JWT_KEY) - .compact(); - } - - /** - * 根据登陆token 获取员工信息 - * - * @param - * @return - */ - public EmployeeLoginInfoDTO getEmployeeLoginInfo(String token) { - /** - * 非生产环境 直接使用 token 作为id - * 不需要的话 注释了吧 - */ - SystemEnvironmentEnum currentEnvironment = systemEnvironment.getCurrentEnvironment(); - if (SystemEnvironmentEnum.PROD != currentEnvironment && NumberUtils.isParsable(token)) { - return employeeService.getById(Long.parseLong(token)); - } - - Long employeeId = getEmployeeIdByToken(token); - if (employeeId == null) { - return null; - } - // 查询用户信息 - EmployeeLoginInfoDTO loginInfo = employeeService.getById(employeeId); - if (loginInfo == null) { - return null; - } - if (loginInfo.getDisabledFlag()) { - return null; - } - return loginInfo; - } - - /** - * 根据登陆token 获取员工信息BO - * - * @param - * @return - */ - public EmployeeLoginBO getEmployeeLoginBO(String token) { - /** - * 非生产环境 直接使用 token 作为id - * 不需要的话 注释了吧 - */ - SystemEnvironmentEnum currentEnvironment = systemEnvironment.getCurrentEnvironment(); - if (SystemEnvironmentEnum.PROD != currentEnvironment && NumberUtils.isParsable(token)) { - return employeeService.getBoById(Long.parseLong(token)); - } - - Long employeeId = getEmployeeIdByToken(token); - if(employeeId == null){ - return null; - } - // 查询用户信息 - EmployeeLoginBO loginInfo = employeeService.getBoById(employeeId); - if (loginInfo == null) { - return null; - } - if (loginInfo.getDisabledFlag()) { - return null; - } - return loginInfo; - } - - private Long getEmployeeIdByToken(String token) { - try { - Claims claims = Jwts.parser() - .setSigningKey(JWT_KEY) - .parseClaimsJws(token) - .getBody(); - return Long.parseLong(claims.get(CLAIM_ID_KEY).toString()); - } catch (Exception e) { - log.error("parse employee token error:", e); - } - return null; - } - -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/controller/LoginController.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/controller/LoginController.java new file mode 100644 index 00000000..dddccd02 --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/controller/LoginController.java @@ -0,0 +1,65 @@ +package net.lab1024.smartadmin.service.module.system.login.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import net.lab1024.smartadmin.service.common.controller.SystemBaseController; +import net.lab1024.smartadmin.service.common.domain.CaptchaVO; +import net.lab1024.smartadmin.service.common.util.SmartRequestUtil; +import net.lab1024.smartadmin.service.module.system.login.service.LoginService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; +import net.lab1024.smartadmin.service.common.annoation.NoNeedLogin; +import net.lab1024.smartadmin.service.common.annoation.NoValidPrivilege; +import net.lab1024.smartadmin.service.common.domain.ResponseDTO; +import net.lab1024.smartadmin.service.constant.SwaggerTagConst; +import net.lab1024.smartadmin.service.module.system.login.domain.LoginForm; +import net.lab1024.smartadmin.service.module.system.login.domain.RequestEmployee; +import net.lab1024.smartadmin.service.module.system.login.domain.LoginResultVO; + +import javax.validation.Valid; + +/** + * 登录 + * + * @author zhuoda + */ +@RestController +@Api(tags = {SwaggerTagConst.System.MANAGER_EMPLOYEE_LOGIN}) +public class LoginController extends SystemBaseController { + + @Autowired + private LoginService loginService; + + @NoNeedLogin + @PostMapping("/login") + @ApiOperation("登录 @author zhuoda") + public ResponseDTO login(@Valid @RequestBody LoginForm loginDTO) { + return loginService.login(loginDTO); + } + + @GetMapping("/login/getLoginInfo") + @ApiOperation("获取登录信息 @author zhuoda") + @NoValidPrivilege + public ResponseDTO getLoginInfo() { + RequestEmployee requestEmployee = SmartRequestUtil.getRequestEmployee(); + return ResponseDTO.ok(loginService.getLoginInfo(requestEmployee)); + } + + @ApiOperation("退出登陆 @author zhuoda") + @GetMapping("/login/logout") + @NoValidPrivilege + public ResponseDTO logout() { + return loginService.logoutByToken(SmartRequestUtil.getRequestEmployeeId()); + } + + @NoNeedLogin + @ApiOperation("获取验证码 @author zhuoda") + @GetMapping("/login/getCaptcha") + public ResponseDTO getCaptcha() { + return loginService.getCaptcha(); + } + +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/EmployeeLoginPrivilegeDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/EmployeeLoginPrivilegeDTO.java deleted file mode 100644 index d3b3df74..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/EmployeeLoginPrivilegeDTO.java +++ /dev/null @@ -1,25 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.login.domain; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -/** - * [ ] - * - * @author 罗伊 - */ -@Data -public class EmployeeLoginPrivilegeDTO { - - @ApiModelProperty("权限key") - private String key; - - private Integer type; - - @ApiModelProperty("url") - private String url; - - @ApiModelProperty("父级key") - private String parentKey; - -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeLoginDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/LoginForm.java similarity index 55% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeLoginDTO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/LoginForm.java index a1679db5..b608f127 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/employee/domain/dto/EmployeeLoginDTO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/LoginForm.java @@ -1,23 +1,21 @@ -package net.lab1024.smartadmin.service.module.system.employee.domain.dto; +package net.lab1024.smartadmin.service.module.system.login.domain; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import net.lab1024.smartadmin.service.module.support.captcha.domain.CaptchaForm; -import net.lab1024.smartadmin.service.common.util.SmartVerificationUtil; import org.hibernate.validator.constraints.Length; +import net.lab1024.smartadmin.service.common.util.SmartVerificationUtil; -import javax.validation.Valid; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Pattern; /** * 登录 * - * @author 开云 + * @author lidoudou * @date 2017年12月19日上午11:49:46 */ @Data -public class EmployeeLoginDTO { +public class LoginForm { @ApiModelProperty(example = "sa") @NotBlank(message = "登录名不能为空") @@ -27,10 +25,18 @@ public class EmployeeLoginDTO { @ApiModelProperty(example = "123456") @NotBlank(message = "密码不能为空") @Pattern(regexp = SmartVerificationUtil.PWD_REGEXP, message = "请输入6-15位密码(数字|大小写字母|小数点)") - private String loginPwd; + private String password; - @ApiModelProperty("图形验证码|可选") - // @NotNull(message = "图形验证码不能为空") - @Valid - private CaptchaForm captcha; + @ApiModelProperty(value = "验证码") + @Length(max = 6, message = "验证码最多6字符") + @NotBlank(message = "验证码不能为空") + private String captchaCode; + + @ApiModelProperty(value = "验证码uuid") + @Length(max = 50, message = "验证码id最多6字符") + private String captchaUuid; + + @ApiModelProperty(value = "登录终端") + @Length(max = 30, message = "登录终端最多30字符") + private String loginTerminal; } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/EmployeeLoginVO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/LoginResultVO.java similarity index 55% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/EmployeeLoginVO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/LoginResultVO.java index 19d2177a..cf390ff6 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/EmployeeLoginVO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/LoginResultVO.java @@ -2,7 +2,8 @@ package net.lab1024.smartadmin.service.module.system.login.domain; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import net.lab1024.smartadmin.service.module.system.menu.domain.MenuTreeVO; +import net.lab1024.smartadmin.service.module.system.menu.domain.vo.MenuTreeVO; +import net.lab1024.smartadmin.service.module.system.menu.domain.vo.MenuVO; import java.util.List; @@ -13,14 +14,20 @@ import java.util.List; * @date 2021年07月21日 上午07:06:31 */ @Data -public class EmployeeLoginVO extends EmployeeLoginInfoDTO { +public class LoginResultVO extends RequestEmployee { @ApiModelProperty("token") private String token; - @ApiModelProperty("菜单树") + @ApiModelProperty("菜单树 用于渲染前端菜单") private List menuTree; + @ApiModelProperty("菜单列表 用于构建前端路由") + private List menuList; + + @ApiModelProperty("菜单列表 用于前端判断路由404") + private List allMenuList; + @ApiModelProperty("功能点权限列表") private List pointsList; diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/EmployeeLoginBO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/LoginUserDetail.java similarity index 88% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/EmployeeLoginBO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/LoginUserDetail.java index 95fbbe80..9b2ba95a 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/EmployeeLoginBO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/LoginUserDetail.java @@ -9,16 +9,16 @@ import java.util.Collection; /** * 员工登陆BO * - * @author 善逸 + * @author lihaifan * @date 2021/8/4 11:15 */ @Data -public class EmployeeLoginBO extends EmployeeLoginInfoDTO implements UserDetails { +public class LoginUserDetail extends RequestEmployee implements UserDetails { /** * 登录密码 */ - private String loginPwd; + private String loginPassword; @Override public Collection getAuthorities() { @@ -27,7 +27,7 @@ public class EmployeeLoginBO extends EmployeeLoginInfoDTO implements UserDetails @Override public String getPassword() { - return this.getLoginPwd(); + return this.getLoginPassword(); } @Override diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/EmployeeLoginInfoDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/RequestEmployee.java similarity index 77% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/EmployeeLoginInfoDTO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/RequestEmployee.java index 837dafee..acd42206 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/EmployeeLoginInfoDTO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/domain/RequestEmployee.java @@ -2,6 +2,7 @@ package net.lab1024.smartadmin.service.module.system.login.domain; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import net.lab1024.smartadmin.service.common.domain.RequestUser; import net.lab1024.smartadmin.service.common.enumeration.GenderEnum; import net.lab1024.smartadmin.service.common.swagger.ApiModelPropertyEnum; @@ -14,7 +15,7 @@ import java.util.List; * @date 2021年07月21日 上午07:06:31 */ @Data -public class EmployeeLoginInfoDTO { +public class RequestEmployee implements RequestUser { @ApiModelProperty("员工id") private Long employeeId; @@ -40,6 +41,9 @@ public class EmployeeLoginInfoDTO { @ApiModelProperty("是否被禁用") private Boolean disabledFlag; + @ApiModelProperty("是否离职") + private Boolean leaveFlag; + @ApiModelProperty("是否为超管") private Boolean isSuperMan; @@ -51,4 +55,14 @@ public class EmployeeLoginInfoDTO { @ApiModelProperty("所在校区名称") private String schoolName; + + @Override + public Long requestUserId() { + return employeeId; + } + + @Override + public String requestUserName() { + return actualName; + } } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/service/JwtService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/service/JwtService.java new file mode 100644 index 00000000..63fc7f27 --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/service/JwtService.java @@ -0,0 +1,101 @@ +package net.lab1024.smartadmin.service.module.system.login.service; + +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.SignatureAlgorithm; +import lombok.extern.slf4j.Slf4j; +import net.lab1024.smartadmin.service.module.system.employee.EmployeeService; +import net.lab1024.smartadmin.service.module.system.login.domain.LoginUserDetail; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; + +/** + * [ ] + * + * @author luoyi + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Slf4j +@Service +public class JwtService { + + /** + * 默认 token 过期时间 1 天 + */ + private static final int EXPIRE_SECONDS = 24 * 3600; + + /** + * 默认 jwt key + */ + private static final String JWT_KEY = "smart-admin-jwt-key"; + + /** + * jwt加密字段 + */ + private static final String CLAIM_ID_KEY = "id"; + + @Autowired + private EmployeeService employeeService; + + /** + * 生成 JWT TOKEN + * + * @param employeeId + * @return + * @auther listen + */ + public String generateJwtToken(Long employeeId) { + long nowTimeMilli = System.currentTimeMillis(); + Claims jwtClaims = Jwts.claims(); + jwtClaims.put(CLAIM_ID_KEY, employeeId); + return Jwts.builder() + .setClaims(jwtClaims) + .setIssuedAt(new Date(nowTimeMilli)) + .setExpiration(new Date(nowTimeMilli + EXPIRE_SECONDS * 1000)) + .signWith(SignatureAlgorithm.HS512, JWT_KEY) + .compact(); + } + + + /** + * 根据登陆token 获取员工信息BO + * + * @param + * @return + */ + public LoginUserDetail getEmployeeLoginBO(String token) { + Long employeeId = decryptToken(token); + if (employeeId == null) { + return null; + } + // 查询用户信息 + LoginUserDetail loginInfo = employeeService.getBoById(employeeId); + if (loginInfo == null) { + return null; + } + if (loginInfo.getDisabledFlag() || loginInfo.getLeaveFlag()) { + return null; + } + return loginInfo; + } + + private Long decryptToken(String token) { + try { + Claims claims = Jwts.parser() + .setSigningKey(JWT_KEY) + .parseClaimsJws(token) + .getBody(); + return Long.parseLong(claims.get(CLAIM_ID_KEY).toString()); + } catch (Exception e) { + log.error("parse employee token error:", e); + } + return null; + } + +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/service/LoginService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/service/LoginService.java new file mode 100644 index 00000000..ce0b35a3 --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/login/service/LoginService.java @@ -0,0 +1,198 @@ +package net.lab1024.smartadmin.service.module.system.login.service; + +import com.google.code.kaptcha.impl.DefaultKaptcha; +import lombok.extern.slf4j.Slf4j; +import net.lab1024.smartadmin.service.common.code.SystemErrorCode; +import net.lab1024.smartadmin.service.common.code.UserErrorCode; +import net.lab1024.smartadmin.service.common.constant.StringConst; +import net.lab1024.smartadmin.service.common.domain.CaptchaVO; +import net.lab1024.smartadmin.service.common.domain.ResponseDTO; +import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; +import net.lab1024.smartadmin.service.constant.RedisKeyConst; +import net.lab1024.smartadmin.service.module.system.department.dao.DepartmentDao; +import net.lab1024.smartadmin.service.module.system.department.domain.entity.DepartmentEntity; +import net.lab1024.smartadmin.service.module.system.employee.EmployeeDao; +import net.lab1024.smartadmin.service.module.system.employee.EmployeeService; +import net.lab1024.smartadmin.service.module.system.employee.domain.entity.EmployeeEntity; +import net.lab1024.smartadmin.service.module.system.login.domain.LoginForm; +import net.lab1024.smartadmin.service.module.system.login.domain.LoginResultVO; +import net.lab1024.smartadmin.service.module.system.login.domain.RequestEmployee; +import net.lab1024.smartadmin.service.module.system.menu.domain.bo.MenuLoginBO; +import net.lab1024.smartadmin.service.module.system.menu.service.MenuEmployeeService; +import net.lab1024.smartadmin.service.module.system.systemconfig.SystemConfigKeyEnum; +import net.lab1024.smartadmin.service.module.system.systemconfig.SystemConfigService; +import net.lab1024.smartadmin.service.third.SmartRedisService; +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.ByteArrayOutputStream; +import java.util.UUID; + +/** + * @author zhuoda + * @version 2.0 + * @company 1024lab.net + * @copyright (c) 2019-2021 1024lab.netInc. All rights reserved. + * @date 2021-11-1 + * @since JDK1.8 + */ +@Slf4j +@Service +public class LoginService { + + @Autowired + private EmployeeDao employeeDao; + + @Autowired + private DepartmentDao departmentDao; + + @Autowired + private JwtService jwtService; + + @Autowired + private DefaultKaptcha defaultKaptcha; + + @Autowired + private SmartRedisService redisService; + + @Autowired + private MenuEmployeeService menuEmployeeService; + + @Autowired + private SystemConfigService systemConfigService; + + + /** + * 员工登陆 + * + * @param loginForm + * @return 返回用户登录信息 + */ + public ResponseDTO login(LoginForm loginForm) { + + /** + * 1、校验redis里的验证码 + * 2、校验成功后,删除redis + */ + String redisCaptchaKey = RedisKeyConst.Support.CAPTCHA + loginForm.getCaptchaUuid(); + String redisCaptchaValue = redisService.get(redisCaptchaKey); + if (StringUtils.isBlank(redisCaptchaValue) || !StringUtils.equalsIgnoreCase(loginForm.getCaptchaCode(), redisCaptchaValue)) { + return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "验证码错误"); + } + // 删除已使用的验证码 + redisService.del(redisCaptchaKey); + + /** + * 验证账号和账号状态 + */ + EmployeeEntity employeeEntity = employeeDao.getByLoginName(loginForm.getLoginName(), null); + if (null == employeeEntity) { + return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "登录名不存在"); + } + + if (employeeEntity.getDisabledFlag()) { + return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "您的账号已被禁用,请联系工作人员"); + } + + /** + * 验证密码: + * 1、万能密码 + * 2、真实密码 + */ + String superPassword = EmployeeService.getEncryptPwd(systemConfigService.getConfigValue(SystemConfigKeyEnum.SUPER_PASSWORD)); + String requestPassword = EmployeeService.getEncryptPwd(loginForm.getPassword()); + if (!(superPassword.equals(loginForm.getPassword()) || requestPassword.equals(superPassword))) { + return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "登录名或密码错误!"); + } + + // 生成 登录token + String token = jwtService.generateJwtToken(employeeEntity.getId()); + // 获取前端菜单以及功能权限 + MenuLoginBO menuLoginBORespDTO = menuEmployeeService.queryMenuTreeByEmployeeId(employeeEntity.getId()); + // 查询部门 + DepartmentEntity departmentEntity = departmentDao.selectById(employeeEntity.getDepartmentId()); + // 返回登录结果 + LoginResultVO loginResultDTO = SmartBeanUtil.copy(employeeEntity, LoginResultVO.class); + loginResultDTO.setEmployeeId(employeeEntity.getId()); + loginResultDTO.setMenuTree(menuLoginBORespDTO.getMenuTree()); + loginResultDTO.setMenuList(menuLoginBORespDTO.getMenuList()); + loginResultDTO.setAllMenuList(menuLoginBORespDTO.getAllMenuList()); + loginResultDTO.setPointsList(menuLoginBORespDTO.getPointsList()); + loginResultDTO.setDepartmentName(null == departmentEntity ? StringConst.EMPTY_STR : departmentEntity.getName()); + loginResultDTO.setToken(token); + loginResultDTO.setIsSuperMan(menuEmployeeService.isSuperman(employeeEntity.getId())); + + return ResponseDTO.ok(loginResultDTO); + } + + /** + * 退出登陆,清除token缓存 + * + * @param employeeId + * @return + */ + public ResponseDTO logoutByToken(Long employeeId) { + return ResponseDTO.ok(); + } + + /** + * 获取验证码 + * + * @return + */ + public ResponseDTO getCaptcha() { + String uuid = UUID.randomUUID().toString().replace("-", StringConst.EMPTY_STR); + String captchaText = defaultKaptcha.createText(); + String base64Code; + BufferedImage image = defaultKaptcha.createImage(captchaText); + ByteArrayOutputStream outputStream = null; + try { + outputStream = new ByteArrayOutputStream(); + ImageIO.write(image, "jpg", outputStream); + base64Code = Base64.encodeBase64String(outputStream.toByteArray()); + } catch (Exception e) { + log.error("verificationCode exception .{}", e); + return ResponseDTO.error(SystemErrorCode.SYSTEM_ERROR); + } finally { + if (outputStream != null) { + try { + outputStream.close(); + } catch (Exception e) { + log.error("verificationCode outputStream close exception .{}", e); + } + } + } + CaptchaVO captchaVO = new CaptchaVO(); + captchaVO.setUuid(uuid); + captchaVO.setCode("data:image/png;base64," + base64Code); + redisService.set(RedisKeyConst.Support.CAPTCHA + uuid, captchaText, 60); + return ResponseDTO.ok(captchaVO); + } + + /** + * 重新获取前端localStorage信息 + * + * @param loginInfo + * @return + */ + public LoginResultVO getLoginInfo(RequestEmployee loginInfo) { + Long employeeId = loginInfo.getEmployeeId(); + LoginResultVO loginDTO = SmartBeanUtil.copy(loginInfo, LoginResultVO.class); + // 获取前端菜单以及功能权限 + MenuLoginBO menuLoginBORespDTO = menuEmployeeService.queryMenuTreeByEmployeeId(employeeId); + loginDTO.setMenuTree(menuLoginBORespDTO.getMenuTree()); + loginDTO.setMenuList(menuLoginBORespDTO.getMenuList()); + loginDTO.setAllMenuList(menuLoginBORespDTO.getAllMenuList()); + loginDTO.setPointsList(menuLoginBORespDTO.getPointsList()); + //判断是否为超管 + Boolean isSuperman = menuEmployeeService.isSuperman(loginDTO.getEmployeeId()); + loginDTO.setIsSuperMan(isSuperman); + return loginDTO; + } + + +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/MenuConst.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/MenuConst.java deleted file mode 100644 index ba0be245..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/MenuConst.java +++ /dev/null @@ -1,6 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.menu; - - public class MenuConst { - - public static final long DEFAULT_PARENT_ID = 0; -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/MenuPermissionService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/MenuPermissionService.java deleted file mode 100644 index 46567afa..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/MenuPermissionService.java +++ /dev/null @@ -1,33 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.menu; - -import net.lab1024.smartadmin.service.common.security.SecurityMetadataSource; -import net.lab1024.smartadmin.service.module.system.login.domain.EmployeeLoginInfoDTO; -import net.lab1024.smartadmin.service.common.util.SmartEmployeeTokenUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -/** - * 菜单权限控制 - * - * @author 卓大 - * @date 2021/8/5 17:14 - */ -@Service(SecurityMetadataSource.PRIVILEGE_CHECK_NAME) -public class MenuPermissionService { - - @Autowired - private MenuEmployeeService menuEmployeeService; - - /** - * 校验是否有权限 - * @param perms - * @return - */ - public boolean checkPermission(String perms){ - EmployeeLoginInfoDTO employeeLoginInfoDTO = SmartEmployeeTokenUtil.getRequestEmployee(); - if(employeeLoginInfoDTO == null){ - return false; - } - return menuEmployeeService.checkEmployeeHavePrivilege(employeeLoginInfoDTO,perms); - } -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/constant/MenuTypeEnum.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/constant/MenuTypeEnum.java index cdb3235f..e2658a16 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/constant/MenuTypeEnum.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/constant/MenuTypeEnum.java @@ -1,18 +1,14 @@ package net.lab1024.smartadmin.service.module.system.menu.constant; -import lombok.AllArgsConstructor; -import lombok.Getter; import net.lab1024.smartadmin.service.common.enumeration.BaseEnum; /** * 菜单类型枚举 * - * @author 卓大 + * @author lihaifan * @date 2021/7/29 15:30 */ -@AllArgsConstructor -@Getter public enum MenuTypeEnum implements BaseEnum { /** * 目录 @@ -27,7 +23,23 @@ public enum MenuTypeEnum implements BaseEnum { */ POINTS(3, "功能点"); - private final Integer value; + private Integer value; - private final String desc; + private String desc; + + + MenuTypeEnum(Integer value, String desc) { + this.value = value; + this.desc = desc; + } + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDesc() { + return desc; + } } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/MenuController.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/controller/MenuController.java similarity index 51% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/MenuController.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/controller/MenuController.java index 8f144c50..41c0d7de 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/MenuController.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/controller/MenuController.java @@ -1,14 +1,19 @@ -package net.lab1024.smartadmin.service.module.system.menu; +package net.lab1024.smartadmin.service.module.system.menu.controller; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst; -import net.lab1024.smartadmin.service.common.controller.SystemBaseController; -import net.lab1024.smartadmin.service.common.domain.ResponseDTO; -import net.lab1024.smartadmin.service.module.system.menu.domain.*; -import net.lab1024.smartadmin.service.common.util.SmartEmployeeTokenUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import net.lab1024.smartadmin.service.constant.SwaggerTagConst; +import net.lab1024.smartadmin.service.common.controller.AdminBaseController; +import net.lab1024.smartadmin.service.common.domain.ResponseDTO; +import net.lab1024.smartadmin.service.module.system.menu.domain.form.MenuAddForm; +import net.lab1024.smartadmin.service.module.system.menu.domain.form.MenuUpdateForm; +import net.lab1024.smartadmin.service.module.system.menu.domain.vo.MenuTreeVO; +import net.lab1024.smartadmin.service.module.system.menu.domain.vo.MenuVO; +import net.lab1024.smartadmin.service.module.system.menu.domain.vo.RequestUrlVO; +import net.lab1024.smartadmin.service.module.system.menu.service.MenuService; +import net.lab1024.smartadmin.service.common.util.SmartRequestEmployeeUtil; import javax.validation.Valid; import java.util.List; @@ -16,54 +21,54 @@ import java.util.List; /** * 菜单 * - * @author 卓大 + * @author zhuoda */ -@Api(tags = {SwaggerTagConst.Admin.MANAGER_MENU}) +@Api(tags = {SwaggerTagConst.System.MANAGER_MENU}) @RestController -public class MenuController extends SystemBaseController { +public class MenuController extends AdminBaseController { @Autowired private MenuService menuService; - @ApiOperation(value = "添加菜单") + @ApiOperation(value = "添加菜单 @author zhuoda") @PostMapping("/menu/add") public ResponseDTO addMenu(@RequestBody @Valid MenuAddForm menuAddForm) { - menuAddForm.setCreateUserId(SmartEmployeeTokenUtil.getRequestEmployeeId()); + menuAddForm.setCreateUserId(SmartRequestEmployeeUtil.getRequestEmployeeId()); return menuService.addMenu(menuAddForm); } - @ApiOperation(value = "更新菜单") + @ApiOperation(value = "更新菜单 @author zhuoda") @PostMapping("/menu/update") public ResponseDTO updateMenu(@RequestBody @Valid MenuUpdateForm menuUpdateForm) { - menuUpdateForm.setUpdateUserId(SmartEmployeeTokenUtil.getRequestEmployeeId()); + menuUpdateForm.setUpdateUserId(SmartRequestEmployeeUtil.getRequestEmployeeId()); return menuService.updateMenu(menuUpdateForm); } - @ApiOperation(value = "批量删除菜单") + @ApiOperation(value = "批量删除菜单 @author zhuoda") @GetMapping("/menu/batchDelete") public ResponseDTO batchDeleteMenu(@RequestParam("menuIdList") List menuIdList) { - return menuService.batchDeleteMenu(menuIdList, SmartEmployeeTokenUtil.getRequestEmployeeId()); + return menuService.batchDeleteMenu(menuIdList, SmartRequestEmployeeUtil.getRequestEmployeeId()); } - @ApiOperation(value = "查询菜单列表") + @ApiOperation(value = "查询菜单列表 @author zhuoda") @GetMapping("/menu/query") public ResponseDTO> queryMenuList() { return ResponseDTO.ok(menuService.queryMenuList(null)); } - @ApiOperation(value = "查询菜单详情") + @ApiOperation(value = "查询菜单详情 @author zhuoda") @GetMapping("/menu/detail/{menuId}") public ResponseDTO getMenuDetail(@PathVariable Long menuId) { return menuService.getMenuDetail(menuId); } - @ApiOperation(value = "查询菜单树") + @ApiOperation(value = "查询菜单树 @author zhuoda") @GetMapping("/menu/tree") public ResponseDTO> queryMenuTree(@RequestParam("onlyMenu") Boolean onlyMenu) { return menuService.queryMenuTree(onlyMenu); } - @ApiOperation(value = "获取所有请求路径", notes = "获取所有请求路径") + @ApiOperation(value = "获取所有请求路径 @author zhuoda") @GetMapping("/menu/getAllUrl") public ResponseDTO> getAllUrl() { return menuService.getPrivilegeUrlDTOList(); diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/MenuDao.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/dao/MenuDao.java similarity index 77% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/MenuDao.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/dao/MenuDao.java index 57525773..bbff2410 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/MenuDao.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/dao/MenuDao.java @@ -1,18 +1,18 @@ -package net.lab1024.smartadmin.service.module.system.menu; +package net.lab1024.smartadmin.service.module.system.menu.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import net.lab1024.smartadmin.service.module.system.menu.domain.MenuEntity; -import net.lab1024.smartadmin.service.module.system.menu.domain.MenuVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Component; +import net.lab1024.smartadmin.service.module.system.menu.domain.entity.MenuEntity; +import net.lab1024.smartadmin.service.module.system.menu.domain.vo.MenuVO; import java.util.List; /** * 菜单 * - * @author 卓大 + * @author lihaifan * @date 2021/7/29 16:13 */ @Mapper @@ -29,6 +29,15 @@ public interface MenuDao extends BaseMapper { */ MenuEntity getByMenuName(@Param("menuName") String menuName, @Param("parentId") Long parentId, @Param("deleteFlag") Boolean deleteFlag); + /** + * 根据前端权限字符串查询菜单 + * + * @param webPerms 前端权限字符串 + * @param deleteFlag 是否删除 + * @return + */ + MenuEntity getByWebPerms(@Param("webPerms") String webPerms, @Param("deleteFlag") Boolean deleteFlag); + /** * 根据菜单ID删除菜单(逻辑删除) * @@ -72,14 +81,14 @@ public interface MenuDao extends BaseMapper { @Param("employeeId") Long employeeId); /** - * 查询有效功能点 + * 根据菜单类型查询 * * @param menuType 菜单类型 - * @param deleteFlag 删除已 + * @param deleteFlag 删除 * @param disabledFlag 禁用 * @return */ - List queryAllPoint(@Param("menuType") Integer menuType, - @Param("deleteFlag") Boolean deleteFlag, - @Param("disabledFlag") Boolean disabledFlag); + List queryMenuByType(@Param("menuType") Integer menuType, + @Param("deleteFlag") Boolean deleteFlag, + @Param("disabledFlag") Boolean disabledFlag); } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuLoginBO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/bo/MenuLoginBO.java similarity index 52% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuLoginBO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/bo/MenuLoginBO.java index b35f67c8..aec8a628 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuLoginBO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/bo/MenuLoginBO.java @@ -1,13 +1,15 @@ -package net.lab1024.smartadmin.service.module.system.menu.domain; +package net.lab1024.smartadmin.service.module.system.menu.domain.bo; import lombok.Data; +import net.lab1024.smartadmin.service.module.system.menu.domain.vo.MenuTreeVO; +import net.lab1024.smartadmin.service.module.system.menu.domain.vo.MenuVO; import java.util.List; /** * 登陆时需要的菜单BO * - * @author 卓大 + * @author lihaifan * @date 2021/8/5 11:35 */ @Data @@ -23,11 +25,14 @@ public class MenuLoginBO { */ private List pointsList; - public MenuLoginBO() { - } + /** + * 菜单列表 + */ + private List menuList; + + /** + * 全部菜单列表 + */ + private List allMenuList; - public MenuLoginBO(List menuTree, List pointsList) { - this.menuTree = menuTree; - this.pointsList = pointsList; - } } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuEntity.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/entity/MenuEntity.java similarity index 90% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuEntity.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/entity/MenuEntity.java index 11023a5c..402e9774 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuEntity.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/entity/MenuEntity.java @@ -1,14 +1,15 @@ -package net.lab1024.smartadmin.service.module.system.menu.domain; +package net.lab1024.smartadmin.service.module.system.menu.domain.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import net.lab1024.smartadmin.service.module.system.menu.constant.MenuTypeEnum; import java.time.LocalDateTime; /** - * @author 卓大 + * @author zhuoda * @Date 2021/7/27 */ @Data @@ -77,6 +78,11 @@ public class MenuEntity { */ private String perms; + /** + * 前端权限字符串 + */ + private String webPerms; + /** * 菜单图标 */ diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuAddForm.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/form/MenuAddForm.java similarity index 51% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuAddForm.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/form/MenuAddForm.java index 36fd6a3c..98a05947 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuAddForm.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/form/MenuAddForm.java @@ -1,22 +1,15 @@ -package net.lab1024.smartadmin.service.module.system.menu.domain; +package net.lab1024.smartadmin.service.module.system.menu.domain.form; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.Valid; -import java.util.List; - /** - * @author 卓大 + * @author zhuoda * @Date 2021/7/27 */ @Data -public class MenuAddForm extends MenuBasicDTO { +public class MenuAddForm extends MenuBaseForm { @ApiModelProperty(hidden = true) private Long createUserId; - - @ApiModelProperty("功能点列表") - @Valid - private List pointList; } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuBasicDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/form/MenuBaseForm.java similarity index 87% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuBasicDTO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/form/MenuBaseForm.java index 34eca341..9d30820a 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuBasicDTO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/form/MenuBaseForm.java @@ -1,10 +1,11 @@ -package net.lab1024.smartadmin.service.module.system.menu.domain; +package net.lab1024.smartadmin.service.module.system.menu.domain.form; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import net.lab1024.smartadmin.service.common.swagger.ApiModelPropertyEnum; -import net.lab1024.smartadmin.service.module.system.menu.constant.MenuTypeEnum; +import net.lab1024.smartadmin.service.common.validator.enumeration.CheckEnum; import org.hibernate.validator.constraints.Length; +import net.lab1024.smartadmin.service.module.system.menu.constant.MenuTypeEnum; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @@ -13,11 +14,11 @@ import java.util.List; /** * 菜单基础 * - * @author 卓大 + * @author lihaifan * @date 2021/7/29 16:16 */ @Data -public class MenuBasicDTO { +public class MenuBaseForm { @ApiModelProperty("菜单名称") @NotBlank(message = "菜单名称不能为空") @@ -25,6 +26,7 @@ public class MenuBasicDTO { private String menuName; @ApiModelPropertyEnum(value = MenuTypeEnum.class, desc = "类型") + @CheckEnum(value = MenuTypeEnum.class, message = "类型错误") private Integer menuType; @ApiModelProperty("父菜单ID 无上级可传0") @@ -59,6 +61,9 @@ public class MenuBasicDTO { @ApiModelProperty("接口权限") private String perms; + @ApiModelProperty("前端权限字符串") + private String webPerms; + @ApiModelProperty("接口权限(拆分)") private List permsList; diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuPointsOperateForm.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/form/MenuPointsOperateForm.java similarity index 89% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuPointsOperateForm.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/form/MenuPointsOperateForm.java index bd1785ba..3a0e69f6 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuPointsOperateForm.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/form/MenuPointsOperateForm.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.module.system.menu.domain; +package net.lab1024.smartadmin.service.module.system.menu.domain.form; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -11,7 +11,7 @@ import java.util.List; /** * 菜单功能点操作Form * - * @author 卓大 + * @author lihaifan * @date 2021/7/30 10:56 */ @Data @@ -32,6 +32,9 @@ public class MenuPointsOperateForm { @ApiModelProperty("接口权限") private List permsList; + @ApiModelProperty("前端权限字符串") + private String webPerms; + @ApiModelProperty("功能点关联菜单ID") private Long contextMenuId; } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuUpdateForm.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/form/MenuUpdateForm.java similarity index 63% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuUpdateForm.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/form/MenuUpdateForm.java index 07ee34e6..93aa2fa9 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuUpdateForm.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/form/MenuUpdateForm.java @@ -1,18 +1,16 @@ -package net.lab1024.smartadmin.service.module.system.menu.domain; +package net.lab1024.smartadmin.service.module.system.menu.domain.form; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.Valid; import javax.validation.constraints.NotNull; -import java.util.List; /** - * @author 卓大 + * @author zhuoda * @Date 2021/7/27 */ @Data -public class MenuUpdateForm extends MenuBasicDTO { +public class MenuUpdateForm extends MenuBaseForm { @ApiModelProperty("菜单ID") @NotNull(message = "菜单ID不能为空") @@ -20,8 +18,4 @@ public class MenuUpdateForm extends MenuBasicDTO { @ApiModelProperty(hidden = true) private Long updateUserId; - - @ApiModelProperty("功能点列表") - @Valid - private List pointList; } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuSimpleTreeVO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/vo/MenuSimpleTreeVO.java similarity index 96% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuSimpleTreeVO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/vo/MenuSimpleTreeVO.java index d09d803d..7ee2211b 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuSimpleTreeVO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/vo/MenuSimpleTreeVO.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.module.system.menu.domain; +package net.lab1024.smartadmin.service.module.system.menu.domain.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -8,7 +8,7 @@ import java.util.List; /** * 简易的菜单VO * - * @author 卓大 + * @author lihaifan * @date 2021/7/30 17:41 */ @Data diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuTreeVO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/vo/MenuTreeVO.java similarity index 93% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuTreeVO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/vo/MenuTreeVO.java index 540384af..882f1144 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuTreeVO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/vo/MenuTreeVO.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.module.system.menu.domain; +package net.lab1024.smartadmin.service.module.system.menu.domain.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -8,7 +8,7 @@ import java.util.List; /** * 菜单功能点操作Form * - * @author 卓大 + * @author lihaifan * @date 2021/7/30 10:56 */ @Data diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuVO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/vo/MenuVO.java similarity index 78% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuVO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/vo/MenuVO.java index 01ed51fa..2590e0f2 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/MenuVO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/vo/MenuVO.java @@ -1,16 +1,17 @@ -package net.lab1024.smartadmin.service.module.system.menu.domain; +package net.lab1024.smartadmin.service.module.system.menu.domain.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import net.lab1024.smartadmin.service.module.system.menu.domain.form.MenuBaseForm; import java.time.LocalDateTime; /** - * @author 卓大 + * @author zhuoda * @Date 2021/7/27 */ @Data -public class MenuVO extends MenuBasicDTO{ +public class MenuVO extends MenuBaseForm { @ApiModelProperty("菜单ID") private Long menuId; diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/RequestUrlVO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/vo/RequestUrlVO.java similarity index 94% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/RequestUrlVO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/vo/RequestUrlVO.java index 5b722ff5..06210c72 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/RequestUrlVO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/domain/vo/RequestUrlVO.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.module.system.menu.domain; +package net.lab1024.smartadmin.service.module.system.menu.domain.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -6,7 +6,7 @@ import lombok.Data; /** * Description * - * @author 卓大 + * @author lihaifan * @date 2021/9/1 20:15 */ @Data diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/MenuManager.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/manager/MenuManager.java similarity index 92% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/MenuManager.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/manager/MenuManager.java index 1999ebf3..95fe4a92 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/MenuManager.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/manager/MenuManager.java @@ -1,17 +1,18 @@ -package net.lab1024.smartadmin.service.module.system.menu; +package net.lab1024.smartadmin.service.module.system.menu.manager; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import net.lab1024.smartadmin.service.module.system.menu.constant.MenuTypeEnum; -import net.lab1024.smartadmin.service.module.system.menu.domain.MenuEntity; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import net.lab1024.smartadmin.service.module.system.menu.constant.MenuTypeEnum; +import net.lab1024.smartadmin.service.module.system.menu.dao.MenuDao; +import net.lab1024.smartadmin.service.module.system.menu.domain.entity.MenuEntity; import java.util.List; /** * 菜单Manager层 * - * @author 卓大 + * @author lihaifan * @date 2021/7/30 14:26 */ @Service diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/MenuEmployeeService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/service/MenuEmployeeService.java similarity index 69% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/MenuEmployeeService.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/service/MenuEmployeeService.java index 111914e7..e2a1ed9c 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/MenuEmployeeService.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/service/MenuEmployeeService.java @@ -1,24 +1,25 @@ -package net.lab1024.smartadmin.service.module.system.menu; +package net.lab1024.smartadmin.service.module.system.menu.service; import com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap; -import net.lab1024.smartadmin.service.module.system.systemconfig.SystemConfigKeyEnum; -import net.lab1024.smartadmin.service.module.system.systemconfig.SystemConfigService; -import net.lab1024.smartadmin.service.module.system.employee.EmployeeService; -import net.lab1024.smartadmin.service.module.system.login.domain.EmployeeLoginInfoDTO; -import net.lab1024.smartadmin.service.module.system.menu.constant.MenuTypeEnum; -import net.lab1024.smartadmin.service.module.system.menu.domain.MenuLoginBO; -import net.lab1024.smartadmin.service.module.system.menu.domain.MenuTreeVO; -import net.lab1024.smartadmin.service.module.system.menu.domain.MenuVO; -import net.lab1024.smartadmin.service.module.system.role.rolemenu.RoleMenuDao; -import net.lab1024.smartadmin.service.module.system.role.rolemenu.domain.RoleMenuEntity; -import net.lab1024.smartadmin.service.common.util.SmartStringUtil; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.compress.utils.Lists; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import net.lab1024.smartadmin.service.module.system.employee.EmployeeService; +import net.lab1024.smartadmin.service.module.system.login.domain.RequestEmployee; +import net.lab1024.smartadmin.service.module.system.menu.constant.MenuTypeEnum; +import net.lab1024.smartadmin.service.module.system.menu.domain.bo.MenuLoginBO; +import net.lab1024.smartadmin.service.module.system.menu.domain.vo.MenuTreeVO; +import net.lab1024.smartadmin.service.module.system.menu.domain.vo.MenuVO; +import net.lab1024.smartadmin.service.module.system.role.dao.RoleMenuDao; +import net.lab1024.smartadmin.service.module.system.role.domain.entity.RoleMenuEntity; +import net.lab1024.smartadmin.service.module.system.systemconfig.SystemConfigEnum; +import net.lab1024.smartadmin.service.module.system.systemconfig.SystemConfigService; +import net.lab1024.smartadmin.service.common.util.SmartStringUtil; import javax.annotation.PostConstruct; +import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.Optional; @@ -28,7 +29,7 @@ import java.util.stream.Collectors; /** * 员工菜单缓存 * - * @author 卓大 + * @author lihaifan * @date 2021/8/5 11:47 */ @Service @@ -54,7 +55,7 @@ public class MenuEmployeeService { * 初始化角色-菜单权限Map */ @PostConstruct - public void initRoleMenuListMap(){ + public void initRoleMenuListMap() { roleMenuListMap.clear(); // 查询所有可用菜单列表 List menuVOList = menuService.queryMenuList(Boolean.FALSE); @@ -64,19 +65,20 @@ public class MenuEmployeeService { for (Map.Entry> roleMenuId : roleMenuIdListMap.entrySet()) { List menuIdList = roleMenuId.getValue(); List roleMenuVOList = menuVOList.stream().filter(e -> menuIdList.contains(e.getMenuId())).collect(Collectors.toList()); - roleMenuListMap.put(roleMenuId.getKey(),roleMenuVOList); + roleMenuListMap.put(roleMenuId.getKey(), roleMenuVOList); } // map中放入超管权限 - roleMenuListMap.put(SUPER_ROLE_ID,menuVOList); + roleMenuListMap.put(SUPER_ROLE_ID, menuVOList); } /** * 校验用户是否有功能权限 + * * @param loginInfoDTO * @param perms * @return */ - public Boolean checkEmployeeHavePrivilege(EmployeeLoginInfoDTO loginInfoDTO, String perms){ + public Boolean checkEmployeeHavePrivilege(RequestEmployee loginInfoDTO, String perms) { if (StringUtils.isBlank(perms)) { return false; } @@ -84,10 +86,10 @@ public class MenuEmployeeService { if (isSuperman) { return true; } - List menuList = this.getMenuByRoleIdList(loginInfoDTO.getRoleList(),loginInfoDTO.getIsSuperMan()); + List menuList = this.getMenuByRoleIdList(loginInfoDTO.getRoleList(), loginInfoDTO.getIsSuperMan()); Optional findRes = menuList.stream().filter(e -> { List permsList = e.getPermsList(); - if(CollectionUtils.isEmpty(permsList)){ + if (CollectionUtils.isEmpty(permsList)) { return false; } return permsList.contains(perms); @@ -102,54 +104,64 @@ public class MenuEmployeeService { * @return */ public Boolean isSuperman(Long employeeId) { - String systemConfigValue = systemConfigService.getConfigValue(SystemConfigKeyEnum.EMPLOYEE_SUPERMAN); + String systemConfigValue = systemConfigService.getConfigValue(SystemConfigEnum.Key.EMPLOYEE_SUPERMAN); List superManIdsList = SmartStringUtil.splitConverToLongList(systemConfigValue, ","); return superManIdsList.contains(employeeId); } /** * 根据角色列表查询菜单列表 + * * @param roleIdList * @return */ - private List getMenuByRoleIdList(List roleIdList, Boolean isSuperman){ - // 超管返回全部菜单权限 - if(isSuperman){ - return roleMenuListMap.get(SUPER_ROLE_ID); - } - - if(CollectionUtils.isEmpty(roleIdList)){ + private List getMenuByRoleIdList(List roleIdList, Boolean isSuperman) { + if (CollectionUtils.isEmpty(roleIdList)) { return Lists.newArrayList(); } - + // 超管返回全部菜单权限 + if (isSuperman) { + return roleMenuListMap.get(SUPER_ROLE_ID); + } List menuVOList = Lists.newArrayList(); for (Long roleId : roleIdList) { - menuVOList.addAll(roleMenuListMap.getOrDefault(roleId,Lists.newArrayList())); + menuVOList.addAll(roleMenuListMap.getOrDefault(roleId, Lists.newArrayList())); } - if(CollectionUtils.isEmpty(menuVOList)){ + if (CollectionUtils.isEmpty(menuVOList)) { return Lists.newArrayList(); } Map distinctMap = menuVOList.stream().collect(Collectors.toMap(MenuVO::getMenuId, Function.identity(), (f, s) -> f)); - return distinctMap.values().stream().collect(Collectors.toList()); + List resultMenuList = distinctMap.values().stream().collect(Collectors.toList()); + // 合并后排序 + return resultMenuList.stream().sorted(Comparator.comparing(MenuVO::getSort,Comparator.nullsLast(Integer::compareTo))).collect(Collectors.toList()); } /** * 查询用户拥有的前端菜单项 用于登陆返回 前端动态路由配置 + * * @param employeeId * @return */ - public MenuLoginBO queryMenuTreeByEmployeeId(Long employeeId){ + public MenuLoginBO queryMenuTreeByEmployeeId(Long employeeId) { // 获取用户权限 - EmployeeLoginInfoDTO employeeLoginInfoDTO = employeeService.getById(employeeId); + RequestEmployee requestEmployee = employeeService.getById(employeeId); // 获取角色菜单权限 - List menuVOList = this.getMenuByRoleIdList(employeeLoginInfoDTO.getRoleList(),employeeLoginInfoDTO.getIsSuperMan()); + List menuVOList = this.getMenuByRoleIdList(requestEmployee.getRoleList(), requestEmployee.getIsSuperMan()); + // 角色菜单类型页面 + List menuList = menuVOList.stream().filter(e -> e.getMenuType().equals(MenuTypeEnum.MENU.getValue())).collect(Collectors.toList()); //获取菜单树 - Map> parentMap = menuVOList.stream().filter(e->!e.getMenuType().equals(MenuTypeEnum.POINTS.getValue())).collect(Collectors.groupingBy(MenuVO::getParentId, Collectors.toList())); + Map> parentMap = menuVOList.stream().filter(e -> !e.getMenuType().equals(MenuTypeEnum.POINTS.getValue())).collect(Collectors.groupingBy(MenuVO::getParentId, Collectors.toList())); List menuTreeVOList = menuService.buildMenuTree(parentMap, 0L); //获取权限列表 - List pointsList = menuVOList.stream().filter(e -> e.getMenuType().equals(MenuTypeEnum.POINTS.getValue())).map(MenuVO::getPerms).collect(Collectors.toList()); - MenuLoginBO menuLoginBO = new MenuLoginBO(menuTreeVOList, pointsList); + List pointsList = menuVOList.stream().filter(e -> e.getMenuType().equals(MenuTypeEnum.POINTS.getValue())).map(MenuVO::getWebPerms).collect(Collectors.toList()); + // 所有菜单 + List allMenuList = roleMenuListMap.get(SUPER_ROLE_ID); + MenuLoginBO menuLoginBO = new MenuLoginBO(); + menuLoginBO.setMenuTree(menuTreeVOList); + menuLoginBO.setMenuList(menuList); + menuLoginBO.setAllMenuList(allMenuList); + menuLoginBO.setPointsList(pointsList); return menuLoginBO; } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/service/MenuPermissionService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/service/MenuPermissionService.java new file mode 100644 index 00000000..865dfb3c --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/service/MenuPermissionService.java @@ -0,0 +1,49 @@ +package net.lab1024.smartadmin.service.module.system.menu.service; + +import org.apache.commons.lang3.BooleanUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import net.lab1024.smartadmin.service.common.security.SmartSecurityMetadataSource; +import net.lab1024.smartadmin.service.module.system.login.domain.RequestEmployee; +import net.lab1024.smartadmin.service.common.util.SmartRequestEmployeeUtil; + +import javax.servlet.http.HttpServletRequest; + +/** + * 菜单权限控制 + * + * @author lihaifan + * @date 2021/8/5 17:14 + */ +@Service(SmartSecurityMetadataSource.PRIVILEGE_CHECK_NAME) +public class MenuPermissionService { + + @Autowired + private MenuEmployeeService menuEmployeeService; + + /** + * header中存在no_check_permission的值为true 则 权限通过 + */ + public static String NO_CHECK_PERMISSION_HEADER = "noCheckPermission"; + + /** + * 校验是否有权限 + * @param perms + * @return + */ + public boolean checkPermission(String perms){ + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String checkPermission = request.getHeader(NO_CHECK_PERMISSION_HEADER); + if(StringUtils.isNotBlank(checkPermission) && BooleanUtils.toBoolean(checkPermission)){ + return true; + } + RequestEmployee requestEmployee = SmartRequestEmployeeUtil.getRequestEmployee(); + if(requestEmployee == null){ + return false; + } + return menuEmployeeService.checkEmployeeHavePrivilege(requestEmployee,perms); + } +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/MenuService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/service/MenuService.java similarity index 60% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/MenuService.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/service/MenuService.java index 2d3e4476..1347b2d1 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/MenuService.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/service/MenuService.java @@ -1,26 +1,33 @@ -package net.lab1024.smartadmin.service.module.system.menu; +package net.lab1024.smartadmin.service.module.system.menu.service; import com.google.common.collect.Lists; -import net.lab1024.smartadmin.service.common.code.UserErrorCode; -import net.lab1024.smartadmin.service.common.constant.StringConst; -import net.lab1024.smartadmin.service.common.domain.ResponseDTO; -import net.lab1024.smartadmin.service.module.system.menu.constant.MenuTypeEnum; -import net.lab1024.smartadmin.service.module.system.menu.domain.*; -import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import net.lab1024.smartadmin.service.common.code.SystemErrorCode; +import net.lab1024.smartadmin.service.common.code.UserErrorCode; +import net.lab1024.smartadmin.service.common.constant.CommonConst; +import net.lab1024.smartadmin.service.common.domain.ResponseDTO; +import net.lab1024.smartadmin.service.module.system.menu.dao.MenuDao; +import net.lab1024.smartadmin.service.module.system.menu.constant.MenuTypeEnum; +import net.lab1024.smartadmin.service.module.system.menu.domain.form.MenuBaseForm; +import net.lab1024.smartadmin.service.module.system.menu.domain.entity.MenuEntity; +import net.lab1024.smartadmin.service.module.system.menu.domain.form.MenuAddForm; +import net.lab1024.smartadmin.service.module.system.menu.domain.form.MenuUpdateForm; +import net.lab1024.smartadmin.service.module.system.menu.domain.vo.MenuTreeVO; +import net.lab1024.smartadmin.service.module.system.menu.domain.vo.MenuVO; +import net.lab1024.smartadmin.service.module.system.menu.domain.vo.RequestUrlVO; +import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.stream.Collectors; /** * 菜单 * - * @author 卓大 + * @author lihaifan * @date 2021/7/29 16:11 */ @Service @@ -29,9 +36,6 @@ public class MenuService { @Autowired private MenuDao menuDao; - @Autowired - private MenuManager menuManager; - @Autowired private MenuEmployeeService menuEmployeeService; @@ -44,11 +48,15 @@ public class MenuService { * @param menuAddForm * @return */ - public ResponseDTO addMenu(MenuAddForm menuAddForm) { + public synchronized ResponseDTO addMenu(MenuAddForm menuAddForm) { // 校验菜单名称 if (this.validateMenuName(menuAddForm)) { return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "菜单名称已存在"); } + // 校验前端权限字符串 + if (this.validateWebPerms(menuAddForm)) { + return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "权限字符串已存在"); + } MenuEntity menuEntity = SmartBeanUtil.copy(menuAddForm, MenuEntity.class); // 处理接口权限 List permsList = menuAddForm.getPermsList(); @@ -56,20 +64,7 @@ public class MenuService { String perms = StringUtils.join(permsList, ","); menuEntity.setPerms(perms); } - // 功能点列表为空 直接添加菜单 - List pointList = menuAddForm.getPointList(); - if (CollectionUtils.isEmpty(pointList)) { - menuDao.insert(menuEntity); - // 更新角色权限缓存 - menuEmployeeService.initRoleMenuListMap(); - return ResponseDTO.ok(); - } - // 若功能点列表不为空 - ResponseDTO> responseDTO = this.validateBuildPointList(menuAddForm.getMenuType(), pointList); - if (!responseDTO.getOk()) { - return ResponseDTO.error(responseDTO); - } - menuManager.addMenu(menuEntity, responseDTO.getData()); + menuDao.insert(menuEntity); // 更新角色权限缓存 menuEmployeeService.initRoleMenuListMap(); return ResponseDTO.ok(); @@ -81,7 +76,7 @@ public class MenuService { * @param menuUpdateForm * @return */ - public ResponseDTO updateMenu(MenuUpdateForm menuUpdateForm) { + public synchronized ResponseDTO updateMenu(MenuUpdateForm menuUpdateForm) { //校验菜单是否存在 MenuEntity selectMenu = menuDao.selectById(menuUpdateForm.getMenuId()); if (selectMenu == null) { @@ -94,6 +89,10 @@ public class MenuService { if (this.validateMenuName(menuUpdateForm)) { return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "菜单名称已存在"); } + // 校验前端权限字符串 + if (this.validateWebPerms(menuUpdateForm)) { + return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "权限字符串已存在"); + } if (menuUpdateForm.getMenuId().equals(menuUpdateForm.getParentId())) { return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "上级菜单不能为自己"); } @@ -104,87 +103,12 @@ public class MenuService { String perms = StringUtils.join(permsList, ","); menuEntity.setPerms(perms); } - //功能点列表为空 直接修改菜单 - List pointList = menuUpdateForm.getPointList(); - if (CollectionUtils.isEmpty(pointList)) { - menuDao.updateById(menuEntity); - // 更新角色权限缓存 - menuEmployeeService.initRoleMenuListMap(); - return ResponseDTO.ok(); - } - //若功能点列表不为空 - ResponseDTO> validateBuildPointList = this.validateBuildPointList(menuUpdateForm.getMenuType(), pointList); - if (!validateBuildPointList.getOk()) { - return ResponseDTO.error(validateBuildPointList); - } - List pointEntityList = validateBuildPointList.getData(); - //查询当前菜单下的功能点列表 - List pointListByMenuId = menuDao.getPointListByMenuId(menuEntity.getMenuId(), MenuTypeEnum.POINTS.getValue(), Boolean.FALSE); - //新增的功能点 - List savePointList = pointEntityList.stream().filter(e -> e.getMenuId() == null).collect(Collectors.toList()); - //删除的功能点 - List deletePointList = Lists.newArrayList(); - //更新的功能点 - List updatePointList = Lists.newArrayList(); - //获取修改、移除的功能点列表 - for (MenuEntity menu : pointListByMenuId) { - Optional findMenu = pointEntityList.stream().filter(e -> e.getMenuId() != null && e.getMenuId().equals(menu.getMenuId())).findFirst(); - //删除的 - if (!findMenu.isPresent()) { - menu.setDeleteFlag(Boolean.TRUE); - menu.setUpdateUserId(menuUpdateForm.getUpdateUserId()); - deletePointList.add(menu); - continue; - } - MenuEntity requestMenu = findMenu.get(); - //是否更新 - Long requestContextMenuId = requestMenu.getContextMenuId() == null ? -1L : requestMenu.getContextMenuId(); - Long menuContextMenuId = menu.getContextMenuId() == null ? -1L : menu.getContextMenuId(); - if (!requestMenu.getMenuName().equals(menu.getMenuName()) - || !requestMenu.getDisabledFlag().equals(menu.getDisabledFlag()) - || !requestMenu.getPerms().equals(menu.getPerms()) - || !requestContextMenuId.equals(menuContextMenuId)) { - requestMenu.setUpdateUserId(menuUpdateForm.getUpdateUserId()); - updatePointList.add(requestMenu); - } - } - menuManager.updateMenu(menuEntity, savePointList, deletePointList, updatePointList); + menuDao.updateById(menuEntity); // 更新角色权限缓存 menuEmployeeService.initRoleMenuListMap(); return ResponseDTO.ok(); } - /** - * 校验构建功能点列表 - * - * @param menuType - * @param pointList - * @return - */ - private ResponseDTO> validateBuildPointList(Integer menuType, List pointList) { - //判断 目录/功能点不能添加功能点 - if (!MenuTypeEnum.MENU.equalsValue(menuType)) { - return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "目录/功能点不能添加子功能点"); - } - //构建功能点对象 - List pointEntityList = pointList.stream().map(e -> { - MenuEntity menu = SmartBeanUtil.copy(e, MenuEntity.class); - // 处理接口权限 - List permsList = e.getPermsList(); - if(!CollectionUtils.isEmpty(permsList)){ - String perms = StringUtils.join(permsList, ","); - menu.setPerms(perms); - } - return menu; - }).collect(Collectors.toList()); - //校验功能点名称是否重复 - Map nameGroupBy = pointEntityList.stream().collect(Collectors.groupingBy(MenuEntity::getMenuName, Collectors.counting())); - List repeatName = nameGroupBy.entrySet().stream().filter(e -> e.getValue() > 1).map(e -> e.getKey()).collect(Collectors.toList()); - if (!CollectionUtils.isEmpty(repeatName)) { - return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "功能点:" + String.join("、", repeatName) + ",名称重复"); - } - return ResponseDTO.ok(pointEntityList); - } /** * 批量删除菜单 @@ -193,7 +117,7 @@ public class MenuService { * @param employeeId * @return */ - public ResponseDTO batchDeleteMenu(List menuIdList, Long employeeId) { + public synchronized ResponseDTO batchDeleteMenu(List menuIdList, Long employeeId) { if (CollectionUtils.isEmpty(menuIdList)) { return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "所选菜单不能为空"); } @@ -210,7 +134,7 @@ public class MenuService { * @param * @return true 重复 false 未重复 */ - public Boolean validateMenuName(T menuDTO) { + public Boolean validateMenuName(T menuDTO) { MenuEntity menu = menuDao.getByMenuName(menuDTO.getMenuName(), menuDTO.getParentId(), Boolean.FALSE); if (menuDTO instanceof MenuAddForm) { return menu != null; @@ -222,6 +146,25 @@ public class MenuService { return true; } + /** + * 校验前端权限字符串 + * + * @param menuDTO + * @param + * @return true 重复 false 未重复 + */ + public Boolean validateWebPerms(T menuDTO) { + MenuEntity menu = menuDao.getByWebPerms(menuDTO.getWebPerms(), Boolean.FALSE); + if (menuDTO instanceof MenuAddForm) { + return menu != null; + } + if (menuDTO instanceof MenuUpdateForm) { + Long menuId = ((MenuUpdateForm) menuDTO).getMenuId(); + return menu != null && menu.getMenuId().longValue() != menuId.longValue(); + } + return true; + } + /** * 查询菜单列表 * @@ -231,7 +174,7 @@ public class MenuService { List menuVOList = menuDao.queryMenuList(Boolean.FALSE, disabledFlag, null); //根据ParentId进行分组 Map> parentMap = menuVOList.stream().collect(Collectors.groupingBy(MenuVO::getParentId, Collectors.toList())); - List filterMenuVOList = this.filterNoParentMenu(parentMap, MenuConst.DEFAULT_PARENT_ID); + List filterMenuVOList = this.filterNoParentMenu(parentMap, CommonConst.DEFAULT_PARENT_ID); return filterMenuVOList; } @@ -275,7 +218,7 @@ public class MenuService { List menuVOList = menuDao.queryMenuList(Boolean.FALSE, null, menuTypeList); //根据ParentId进行分组 Map> parentMap = menuVOList.stream().collect(Collectors.groupingBy(MenuVO::getParentId, Collectors.toList())); - List menuTreeVOList = this.buildMenuTree(parentMap, MenuConst.DEFAULT_PARENT_ID); + List menuTreeVOList = this.buildMenuTree(parentMap, CommonConst.DEFAULT_PARENT_ID); return ResponseDTO.ok(menuTreeVOList); } @@ -311,10 +254,10 @@ public class MenuService { //校验菜单是否存在 MenuEntity selectMenu = menuDao.selectById(menuId); if (selectMenu == null) { - return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST, "菜单不存在"); + return ResponseDTO.error(SystemErrorCode.SYSTEM_ERROR, "菜单不存在"); } if (selectMenu.getDeleteFlag()) { - return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST, "菜单已被删除"); + return ResponseDTO.error(SystemErrorCode.SYSTEM_ERROR, "菜单已被删除"); } MenuVO menuVO = SmartBeanUtil.copy(selectMenu, MenuVO.class); //处理接口权限 diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/RequestUrlService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/service/RequestUrlService.java similarity index 80% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/RequestUrlService.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/service/RequestUrlService.java index 2acb6457..c4139a5c 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/RequestUrlService.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/menu/service/RequestUrlService.java @@ -1,10 +1,9 @@ -package net.lab1024.smartadmin.service.module.system.menu; +package net.lab1024.smartadmin.service.module.system.menu.service; import com.google.common.collect.Lists; +import com.google.common.collect.Sets; import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiOperation; -import net.lab1024.smartadmin.service.module.system.menu.domain.RequestUrlVO; -import net.lab1024.smartadmin.service.common.util.SmartStringUtil; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.annotation.AnnotationUtils; @@ -15,6 +14,9 @@ import org.springframework.web.context.WebApplicationContext; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.mvc.method.RequestMappingInfo; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; +import net.lab1024.smartadmin.service.common.constant.CommonConst; +import net.lab1024.smartadmin.service.module.system.menu.domain.vo.RequestUrlVO; +import net.lab1024.smartadmin.service.common.util.SmartStringUtil; import javax.annotation.PostConstruct; import java.util.List; @@ -25,7 +27,7 @@ import java.util.concurrent.CopyOnWriteArrayList; /** * 分离前后台权限URL * - * @author 卓大 + * @author lihaifan * @date 2021/9/1 20:14 */ @Service @@ -56,8 +58,8 @@ public class RequestUrlService { } } //获取url的Set集合,一个方法可能对应多个url - Set urlSet = info.getPatternsCondition().getPatterns(); - if (CollectionUtils.isEmpty(urlSet)) { + Set patterns = info.getPatternsCondition().getPatterns(); + if (CollectionUtils.isEmpty(patterns)) { return; } String className = handlerMethod.getMethod().getDeclaringClass().getName(); @@ -78,6 +80,7 @@ public class RequestUrlService { methodComment = handlerMethod.getMethod().getName(); } } + Set urlSet = this.getUrlSet(patterns); for (String url : urlSet) { RequestUrlVO requestUrlVO = new RequestUrlVO(); requestUrlVO.setUrl(url); @@ -88,6 +91,21 @@ public class RequestUrlService { }); } + + private Set getUrlSet(Set patterns) { + Set urlSet = Sets.newHashSet(); + for (String url : patterns) { + for (String ignoreUrl : CommonConst.CommonCollection.IGNORE_URL_MAPPING) { + if (url.startsWith(ignoreUrl)) { + urlSet.add(url.substring(ignoreUrl.length() - 1)); + } else { + urlSet.add(url); + } + } + } + return urlSet; + } + public List getPrivilegeList() { return this.requestUrlVOS; } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/domain/dto/RoleQueryForm.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/domain/dto/RoleQueryForm.java deleted file mode 100644 index adee3bda..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/domain/dto/RoleQueryForm.java +++ /dev/null @@ -1,20 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.role.basic.domain.dto; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import net.lab1024.smartadmin.service.common.domain.PageParamForm; - -/** - * [ ] - * - * @author 罗伊 - */ -@Data -public class RoleQueryForm extends PageParamForm { - - @ApiModelProperty("角色名称") - private String roleName; - - @ApiModelProperty("角色id") - private String roleId; -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/domain/vo/RoleSelectedVO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/domain/vo/RoleSelectedVO.java deleted file mode 100644 index ba47d33f..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/domain/vo/RoleSelectedVO.java +++ /dev/null @@ -1,16 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.role.basic.domain.vo; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -/** - * [ ] - * - * @author 罗伊 - */ -@Data -public class RoleSelectedVO extends RoleVO { - - @ApiModelProperty("角色名称") - private Boolean selected; -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/RoleController.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/controller/RoleController.java similarity index 65% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/RoleController.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/controller/RoleController.java index d5fee985..be5280eb 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/RoleController.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/controller/RoleController.java @@ -1,15 +1,16 @@ -package net.lab1024.smartadmin.service.module.system.role.basic; +package net.lab1024.smartadmin.service.module.system.role.controller; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst; -import net.lab1024.smartadmin.service.common.controller.SystemBaseController; -import net.lab1024.smartadmin.service.common.domain.ResponseDTO; -import net.lab1024.smartadmin.service.module.system.role.basic.domain.dto.RoleAddDTO; -import net.lab1024.smartadmin.service.module.system.role.basic.domain.dto.RoleUpdateDTO; -import net.lab1024.smartadmin.service.module.system.role.basic.domain.vo.RoleVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import net.lab1024.smartadmin.service.constant.SwaggerTagConst; +import net.lab1024.smartadmin.service.common.controller.AdminBaseController; +import net.lab1024.smartadmin.service.common.domain.ResponseDTO; +import net.lab1024.smartadmin.service.module.system.role.service.RoleService; +import net.lab1024.smartadmin.service.module.system.role.domain.form.RoleAddForm; +import net.lab1024.smartadmin.service.module.system.role.domain.form.RoleUpdateForm; +import net.lab1024.smartadmin.service.module.system.role.domain.vo.RoleVO; import javax.validation.Valid; import java.util.List; @@ -20,17 +21,17 @@ import java.util.List; * @author listen * @date 2017/12/28 10:10 */ -@Api(tags = {SwaggerTagConst.Admin.MANAGER_ROLE}) +@Api(tags = {SwaggerTagConst.System.MANAGER_ROLE}) @RestController -public class RoleController extends SystemBaseController { +public class RoleController extends AdminBaseController { @Autowired private RoleService roleService; @ApiOperation(value = "添加角色", notes = "添加角色") @PostMapping("/role/add") - public ResponseDTO addRole(@Valid @RequestBody RoleAddDTO roleAddDTO) { - return roleService.addRole(roleAddDTO); + public ResponseDTO addRole(@Valid @RequestBody RoleAddForm roleAddForm) { + return roleService.addRole(roleAddForm); } @ApiOperation(value = "删除角色", notes = "根据id删除角色") @@ -41,7 +42,7 @@ public class RoleController extends SystemBaseController { @ApiOperation(value = "更新角色", notes = "更新角色") @PostMapping("/role/update") - public ResponseDTO updateRole(@Valid @RequestBody RoleUpdateDTO roleUpdateDTO) { + public ResponseDTO updateRole(@Valid @RequestBody RoleUpdateForm roleUpdateDTO) { return roleService.updateRole(roleUpdateDTO); } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/controller/RoleDataScopeController.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/controller/RoleDataScopeController.java new file mode 100644 index 00000000..2285f24f --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/controller/RoleDataScopeController.java @@ -0,0 +1,42 @@ +package net.lab1024.smartadmin.service.module.system.role.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import net.lab1024.smartadmin.service.common.controller.AdminBaseController; +import net.lab1024.smartadmin.service.common.domain.ResponseDTO; +import net.lab1024.smartadmin.service.constant.SwaggerTagConst; +import net.lab1024.smartadmin.service.module.system.role.domain.form.RoleDataScopeUpdateForm; +import net.lab1024.smartadmin.service.module.system.role.domain.vo.RoleDataScopeVO; +import net.lab1024.smartadmin.service.module.system.role.service.RoleDataScopeService; + +import javax.validation.Valid; +import java.util.List; + +/** + * @author zhuoda + * @Date 2021-10-22 + */ + +@Api(tags = {SwaggerTagConst.System.MANAGER_ROLE}) +@RestController +public class RoleDataScopeController extends AdminBaseController { + + @Autowired + private RoleDataScopeService roleDataScopeService; + + @ApiOperation(value = "获取某角色所设置的数据范围 @author zhuoda") + @GetMapping("/role/dataScope/getRoleDataScopeList/{roleId}") + public ResponseDTO> dataScopeListByRole(@PathVariable Long roleId) { + return roleDataScopeService.getRoleDataScopeList(roleId); + } + + @ApiOperation(value = "批量设置某角色数据范围 @author zhuoda") + @PostMapping("/role/dataScope/updateRoleDataScopeList") + public ResponseDTO updateRoleDataScopeList(@RequestBody @Valid RoleDataScopeUpdateForm roleDataScopeUpdateForm) { + return roleDataScopeService.updateRoleDataScopeList(roleDataScopeUpdateForm); + } + + +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/controller/RoleEmployeeController.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/controller/RoleEmployeeController.java new file mode 100644 index 00000000..c6c706c1 --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/controller/RoleEmployeeController.java @@ -0,0 +1,73 @@ +package net.lab1024.smartadmin.service.module.system.role.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import net.lab1024.smartadmin.service.constant.SwaggerTagConst; +import net.lab1024.smartadmin.service.common.controller.AdminBaseController; +import net.lab1024.smartadmin.service.common.domain.PageResult; +import net.lab1024.smartadmin.service.common.domain.ResponseDTO; +import net.lab1024.smartadmin.service.module.system.employee.domain.vo.EmployeeVO; +import net.lab1024.smartadmin.service.module.system.role.domain.form.RoleEmployeeQueryForm; +import net.lab1024.smartadmin.service.module.system.role.domain.vo.RoleSelectedVO; +import net.lab1024.smartadmin.service.module.system.role.service.RoleEmployeeService; +import net.lab1024.smartadmin.service.module.system.role.domain.form.RoleEmployeeUpdateForm; + +import javax.validation.Valid; +import java.util.List; + +/** + * 用户角色管理路由 + * + * @author listen + * @date 2017/12/28 10:10 + */ +@Api(tags = {SwaggerTagConst.System.MANAGER_ROLE}) +@RestController +public class RoleEmployeeController extends AdminBaseController { + + @Autowired + private RoleEmployeeService roleEmployeeService; + + @ApiOperation(value = "查询某个角色下的员工列表 @author zhuoda") + @PostMapping("/role/employee/queryEmployee") + public ResponseDTO> queryEmployee(@Valid @RequestBody RoleEmployeeQueryForm roleEmployeeQueryForm) { + return roleEmployeeService.queryEmployee(roleEmployeeQueryForm); + } + + @ApiOperation(value = "获取某个角色下的所有员工列表(无分页) @author zhuoda") + @GetMapping("/role/employee/getAllEmployeeByRoleId/{roleId}") + public ResponseDTO> listAllEmployeeRoleId(@PathVariable Long roleId) { + return ResponseDTO.ok(roleEmployeeService.getAllEmployeeByRoleId(roleId)); + } + + @ApiOperation(value = "从角色成员列表中移除员工 @author zhuoda") + @ApiImplicitParams({@ApiImplicitParam(name = "employeeId", value = "员工id", paramType = "query", required = true), + @ApiImplicitParam(name = "roleId", value = "角色id", paramType = "query", required = true)}) + @GetMapping("/role/employee/removeEmployee") + public ResponseDTO removeEmployee(Long employeeId, Long roleId) { + return roleEmployeeService.removeRoleEmployee(employeeId, roleId); + } + + @ApiOperation(value = "从角色成员列表中批量移除员工 @author zhuoda") + @PostMapping("/role/employee/batchRemoveRoleEmployee") + public ResponseDTO batchRemoveEmployee(@Valid @RequestBody RoleEmployeeUpdateForm updateForm) { + return roleEmployeeService.batchRemoveRoleEmployee(updateForm); + } + + @ApiOperation(value = "角色成员列表中批量添加员工 @author zhuoda") + @PostMapping("/role/employee/batchAddRoleEmployee") + public ResponseDTO addEmployeeList(@Valid @RequestBody RoleEmployeeUpdateForm addForm) { + return roleEmployeeService.batchAddRoleEmployee(addForm); + } + + @ApiOperation(value = "获取员工所有选中的角色和所有角色 @author zhuoda") + @GetMapping("/role/employee/getRoles/{employeeId}") + public ResponseDTO> getRoleByEmployeeId(@PathVariable Long employeeId) { + return roleEmployeeService.getRolesByEmployeeId(employeeId); + } +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/rolemenu/RoleMenuController.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/controller/RoleMenuController.java similarity index 51% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/rolemenu/RoleMenuController.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/controller/RoleMenuController.java index 44eb5a80..14df4c3a 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/rolemenu/RoleMenuController.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/controller/RoleMenuController.java @@ -1,37 +1,38 @@ -package net.lab1024.smartadmin.service.module.system.role.rolemenu; +package net.lab1024.smartadmin.service.module.system.role.controller; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst; -import net.lab1024.smartadmin.service.common.controller.SystemBaseController; -import net.lab1024.smartadmin.service.common.domain.ResponseDTO; -import net.lab1024.smartadmin.service.module.system.role.rolemenu.domain.RoleMenuDTO; -import net.lab1024.smartadmin.service.module.system.role.rolemenu.domain.RoleMenuTreeVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import net.lab1024.smartadmin.service.common.controller.AdminBaseController; +import net.lab1024.smartadmin.service.constant.SwaggerTagConst; +import net.lab1024.smartadmin.service.common.domain.ResponseDTO; +import net.lab1024.smartadmin.service.module.system.role.service.RoleMenuService; +import net.lab1024.smartadmin.service.module.system.role.domain.form.RoleMenuUpdateForm; +import net.lab1024.smartadmin.service.module.system.role.domain.vo.RoleMenuTreeVO; import javax.validation.Valid; /** * 角色-菜单 * - * @author 善逸 + * @author lihaifan * @date 2021/7/30 17:06 */ @RestController -@Api(tags = {SwaggerTagConst.Admin.MANAGER_ROLE_MENU}) -public class RoleMenuController extends SystemBaseController { +@Api(tags = {SwaggerTagConst.System.MANAGER_ROLE_MENU}) +public class RoleMenuController extends AdminBaseController { @Autowired private RoleMenuService roleMenuService; - @ApiOperation("更新角色权限") + @ApiOperation("更新角色权限 @author zhuoda") @PostMapping("/role/menu/updateRoleMenu") - public ResponseDTO updateRoleMenu(@Valid @RequestBody RoleMenuDTO updateDTO) { + public ResponseDTO updateRoleMenu(@Valid @RequestBody RoleMenuUpdateForm updateDTO) { return roleMenuService.updateRoleMenu(updateDTO); } - @ApiOperation("获取角色关联菜单权限") + @ApiOperation("获取角色关联菜单权限 @author zhuoda") @GetMapping("/role/menu/getRoleSelectedMenu/{roleId}") public ResponseDTO getRoleSelectedMenu(@PathVariable Long roleId) { return roleMenuService.getRoleSelectedMenu(roleId); diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/RoleDao.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/dao/RoleDao.java similarity index 52% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/RoleDao.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/dao/RoleDao.java index 744092e5..bcf08e11 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/RoleDao.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/dao/RoleDao.java @@ -1,15 +1,20 @@ -package net.lab1024.smartadmin.service.module.system.role.basic; +package net.lab1024.smartadmin.service.module.system.role.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Component; -import net.lab1024.smartadmin.service.module.system.role.basic.domain.entity.RoleEntity; +import net.lab1024.smartadmin.service.module.system.role.domain.entity.RoleEntity; /** * [ ] * - * @author 罗伊 + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 13:00 + * @since JDK1.8 */ @Mapper @Component diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/DataScopeRoleDao.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/dao/RoleDataScopeDao.java similarity index 69% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/DataScopeRoleDao.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/dao/RoleDataScopeDao.java index a8046e16..1af9dede 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/datascope/DataScopeRoleDao.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/dao/RoleDataScopeDao.java @@ -1,21 +1,26 @@ -package net.lab1024.smartadmin.service.module.system.datascope; +package net.lab1024.smartadmin.service.module.system.role.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Component; -import net.lab1024.smartadmin.service.module.system.datascope.domain.entity.DataScopeRoleEntity; +import net.lab1024.smartadmin.service.module.support.datascope.domain.entity.DataScopeRoleEntity; import java.util.List; /** * [ ] * - * @author 罗伊 + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/27 0027 下午 14:41 + * @since JDK1.8 */ @Mapper @Component -public interface DataScopeRoleDao extends BaseMapper { +public interface RoleDataScopeDao extends BaseMapper { /** * 获取某个角色的设置信息 diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/roleemployee/RoleEmployeeDao.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/dao/RoleEmployeeDao.java similarity index 65% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/roleemployee/RoleEmployeeDao.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/dao/RoleEmployeeDao.java index fb5e2425..cc3db795 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/roleemployee/RoleEmployeeDao.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/dao/RoleEmployeeDao.java @@ -1,20 +1,26 @@ -package net.lab1024.smartadmin.service.module.system.role.roleemployee; +package net.lab1024.smartadmin.service.module.system.role.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Component; -import net.lab1024.smartadmin.service.module.system.employee.domain.dto.EmployeeDTO; -import net.lab1024.smartadmin.service.module.system.role.basic.domain.dto.RoleQueryForm; -import net.lab1024.smartadmin.service.module.system.role.roleemployee.domain.RoleEmployeeEntity; +import net.lab1024.smartadmin.service.module.system.employee.domain.vo.EmployeeVO; +import net.lab1024.smartadmin.service.module.system.role.domain.entity.RoleEmployeeEntity; +import net.lab1024.smartadmin.service.module.system.role.domain.form.RoleEmployeeQueryForm; +import net.lab1024.smartadmin.service.module.system.role.domain.vo.RoleEmployeeVO; import java.util.List; /** * [ ] * - * @author 罗伊 + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 13:00 + * @since JDK1.8 */ @Mapper @Component @@ -34,6 +40,13 @@ public interface RoleEmployeeDao extends BaseMapper { */ List selectRoleIdByEmployeeIdList(@Param("employeeIdList") List employeeIdList); + /** + * 根据员工id 查询所有的角色 + * @param employeeIdList + * @return + */ + List selectRoleByEmployeeIdList(@Param("employeeIdList") List employeeIdList); + /** * 查询角色下的人员id * @param roleIdList @@ -43,17 +56,17 @@ public interface RoleEmployeeDao extends BaseMapper { /** * * @param page - * @param queryDTO + * @param roleEmployeeQueryForm * @return */ - List selectEmployeeByNamePage(Page page, @Param("queryDTO") RoleQueryForm queryDTO); + List selectRoleEmployeeByName(Page page, @Param("queryForm") RoleEmployeeQueryForm roleEmployeeQueryForm); /** * * @param roleId * @return */ - List selectEmployeeByRoleId(@Param("roleId") Long roleId); + List selectEmployeeByRoleId(@Param("roleId") Long roleId); /** * 根据员工信息删除 * @param employeeId diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/rolemenu/RoleMenuDao.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/dao/RoleMenuDao.java similarity index 81% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/rolemenu/RoleMenuDao.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/dao/RoleMenuDao.java index bce6600e..21598dea 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/rolemenu/RoleMenuDao.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/dao/RoleMenuDao.java @@ -1,17 +1,17 @@ -package net.lab1024.smartadmin.service.module.system.role.rolemenu; +package net.lab1024.smartadmin.service.module.system.role.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Component; -import net.lab1024.smartadmin.service.module.system.role.rolemenu.domain.RoleMenuEntity; +import net.lab1024.smartadmin.service.module.system.role.domain.entity.RoleMenuEntity; import java.util.List; /** * 角色-菜单 * - * @author 善逸 + * @author lihaifan * @date 2021/7/30 17:18 */ @Mapper diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/roleemployee/domain/RoleEmployeeEntity.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/entity/RoleEmployeeEntity.java similarity index 73% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/roleemployee/domain/RoleEmployeeEntity.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/entity/RoleEmployeeEntity.java index c4ced3c2..5d44192d 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/roleemployee/domain/RoleEmployeeEntity.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/entity/RoleEmployeeEntity.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.module.system.role.roleemployee.domain; +package net.lab1024.smartadmin.service.module.system.role.domain.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; @@ -10,7 +10,12 @@ import java.time.LocalDateTime; /** * [ 角色 员工关系] * - * @author 罗伊 + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 13:01 + * @since JDK1.8 */ @Data @TableName("t_role_employee") diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/domain/entity/RoleEntity.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/entity/RoleEntity.java similarity index 70% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/domain/entity/RoleEntity.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/entity/RoleEntity.java index 44a8f306..5a8bee59 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/domain/entity/RoleEntity.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/entity/RoleEntity.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.module.system.role.basic.domain.entity; +package net.lab1024.smartadmin.service.module.system.role.domain.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; @@ -10,7 +10,12 @@ import java.time.LocalDateTime; /** * [ 角色 ] * - * @author 罗伊 + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 13:01 + * @since JDK1.8 */ @Data @TableName("t_role") diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/rolemenu/domain/RoleMenuEntity.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/entity/RoleMenuEntity.java similarity index 88% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/rolemenu/domain/RoleMenuEntity.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/entity/RoleMenuEntity.java index e714f310..e6f961f0 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/rolemenu/domain/RoleMenuEntity.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/entity/RoleMenuEntity.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.module.system.role.rolemenu.domain; +package net.lab1024.smartadmin.service.module.system.role.domain.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; @@ -10,7 +10,7 @@ import java.time.LocalDateTime; /** * 角色-菜单 * - * @author 善逸 + * @author lihaifan * @date 2021/7/30 17:09 */ @Data diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/domain/dto/RoleAddDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/form/RoleAddForm.java similarity index 86% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/domain/dto/RoleAddDTO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/form/RoleAddForm.java index 24b1b04e..26378d7f 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/domain/dto/RoleAddDTO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/form/RoleAddForm.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.module.system.role.basic.domain.dto; +package net.lab1024.smartadmin.service.module.system.role.domain.form; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.hibernate.validator.constraints.Length; @@ -12,7 +12,7 @@ import javax.validation.constraints.NotNull; * @date 2017/12/28 09:40 */ @Data -public class RoleAddDTO { +public class RoleAddForm { /** * 角色名称 diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/form/RoleDataScopeUpdateForm.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/form/RoleDataScopeUpdateForm.java new file mode 100644 index 00000000..d0495399 --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/form/RoleDataScopeUpdateForm.java @@ -0,0 +1,44 @@ +package net.lab1024.smartadmin.service.module.system.role.domain.form; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.Valid; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/27 0027 下午 16:47 + * @since JDK1.8 + */ +@Data +public class RoleDataScopeUpdateForm { + + @ApiModelProperty("角色id") + @NotNull(message = "角色id不能为空") + private Long roleId; + + @ApiModelProperty("设置信息") + @Valid + private List dataScopeItemList; + + + @Data + public static class RoleUpdateDataScopeListFormItem { + + @ApiModelProperty("数据范围类型") + @NotNull(message = "数据范围类型不能为空") + private Integer dataScopeType; + + @ApiModelProperty("可见范围") + @NotNull(message = "可见范围不能为空") + private Integer viewType; + } + +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/form/RoleEmployeeQueryForm.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/form/RoleEmployeeQueryForm.java new file mode 100644 index 00000000..3a83bb6f --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/form/RoleEmployeeQueryForm.java @@ -0,0 +1,25 @@ +package net.lab1024.smartadmin.service.module.system.role.domain.form; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import net.lab1024.smartadmin.service.common.domain.PageParam; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Data +public class RoleEmployeeQueryForm extends PageParam { + + @ApiModelProperty("关键字") + private String keywords; + + @ApiModelProperty("角色id") + private String roleId; +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/roleemployee/domain/RoleEmployeeBatchDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/form/RoleEmployeeUpdateForm.java similarity index 76% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/roleemployee/domain/RoleEmployeeBatchDTO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/form/RoleEmployeeUpdateForm.java index 63ff3e10..99511499 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/roleemployee/domain/RoleEmployeeBatchDTO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/form/RoleEmployeeUpdateForm.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.module.system.role.roleemployee.domain; +package net.lab1024.smartadmin.service.module.system.role.domain.form; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -15,7 +15,7 @@ import java.util.List; * @date 2017/12/29 15:38 */ @Data -public class RoleEmployeeBatchDTO { +public class RoleEmployeeUpdateForm { @ApiModelProperty("角色id") @NotNull(message = "角色id不能为空") @@ -23,7 +23,6 @@ public class RoleEmployeeBatchDTO { @ApiModelProperty(value = "员工id集合") @NotEmpty(message = "员工id不能为空") - @Size(max = 99, message = "一次最多99个员工") protected List employeeIdList; } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/rolemenu/domain/RoleMenuDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/form/RoleMenuUpdateForm.java similarity index 80% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/rolemenu/domain/RoleMenuDTO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/form/RoleMenuUpdateForm.java index 409214a4..058ed03e 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/rolemenu/domain/RoleMenuDTO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/form/RoleMenuUpdateForm.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.module.system.role.rolemenu.domain; +package net.lab1024.smartadmin.service.module.system.role.domain.form; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -8,11 +8,11 @@ import java.util.List; /** * 角色-菜单 * - * @author 善逸 + * @author lihaifan * @date 2021/7/30 17:18 */ @Data -public class RoleMenuDTO { +public class RoleMenuUpdateForm { /** * 角色id diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/form/RoleQueryForm.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/form/RoleQueryForm.java new file mode 100644 index 00000000..1953c702 --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/form/RoleQueryForm.java @@ -0,0 +1,25 @@ +package net.lab1024.smartadmin.service.module.system.role.domain.form; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import net.lab1024.smartadmin.service.common.domain.PageParam; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Data +public class RoleQueryForm extends PageParam { + + @ApiModelProperty("角色名称") + private String roleName; + + @ApiModelProperty("角色id") + private String roleId; +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/domain/dto/RoleUpdateDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/form/RoleUpdateForm.java similarity index 73% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/domain/dto/RoleUpdateDTO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/form/RoleUpdateForm.java index eee16665..ecc320d1 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/domain/dto/RoleUpdateDTO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/form/RoleUpdateForm.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.module.system.role.basic.domain.dto; +package net.lab1024.smartadmin.service.module.system.role.domain.form; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -11,7 +11,7 @@ import javax.validation.constraints.NotNull; * @date 2017/12/28 09:40 */ @Data -public class RoleUpdateDTO extends RoleAddDTO { +public class RoleUpdateForm extends RoleAddForm { /** * 角色id diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/vo/RoleDataScopeVO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/vo/RoleDataScopeVO.java new file mode 100644 index 00000000..e8739ff9 --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/vo/RoleDataScopeVO.java @@ -0,0 +1,24 @@ +package net.lab1024.smartadmin.service.module.system.role.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/27 0027 下午 16:43 + * @since JDK1.8 + */ +@Data +public class RoleDataScopeVO { + + @ApiModelProperty("数据范围id") + private Integer dataScopeType; + + @ApiModelProperty("可见范围") + private Integer viewType; +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/vo/RoleEmployeeVO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/vo/RoleEmployeeVO.java new file mode 100644 index 00000000..48b39e9e --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/vo/RoleEmployeeVO.java @@ -0,0 +1,23 @@ +package net.lab1024.smartadmin.service.module.system.role.domain.vo; + +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 15:27 + * @since JDK1.8 + */ +@Data +public class RoleEmployeeVO { + + private Long roleId; + + private Long employeeId; + + private String roleName; +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/rolemenu/domain/RoleMenuTreeVO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/vo/RoleMenuTreeVO.java similarity index 81% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/rolemenu/domain/RoleMenuTreeVO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/vo/RoleMenuTreeVO.java index e8fdba8d..d2c625b3 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/rolemenu/domain/RoleMenuTreeVO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/vo/RoleMenuTreeVO.java @@ -1,15 +1,15 @@ -package net.lab1024.smartadmin.service.module.system.role.rolemenu.domain; +package net.lab1024.smartadmin.service.module.system.role.domain.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import net.lab1024.smartadmin.service.module.system.menu.domain.MenuSimpleTreeVO; +import net.lab1024.smartadmin.service.module.system.menu.domain.vo.MenuSimpleTreeVO; import java.util.List; /** * 角色菜单树 * - * @author 善逸 + * @author lihaifan * @date 2021/7/30 17:36 */ @Data diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/vo/RoleSelectedVO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/vo/RoleSelectedVO.java new file mode 100644 index 00000000..887e58c5 --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/vo/RoleSelectedVO.java @@ -0,0 +1,21 @@ +package net.lab1024.smartadmin.service.module.system.role.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 15:27 + * @since JDK1.8 + */ +@Data +public class RoleSelectedVO extends RoleVO { + + @ApiModelProperty("角色名称") + private Boolean selected; +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/domain/vo/RoleVO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/vo/RoleVO.java similarity index 55% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/domain/vo/RoleVO.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/vo/RoleVO.java index 63d36d81..0bf30363 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/domain/vo/RoleVO.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/domain/vo/RoleVO.java @@ -1,4 +1,4 @@ -package net.lab1024.smartadmin.service.module.system.role.basic.domain.vo; +package net.lab1024.smartadmin.service.module.system.role.domain.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -6,7 +6,12 @@ import lombok.Data; /** * [ ] * - * @author 罗伊 + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 15:27 + * @since JDK1.8 */ @Data public class RoleVO { diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/roleemployee/RoleEmployeeManager.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/manager/RoleEmployeeManager.java similarity index 78% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/roleemployee/RoleEmployeeManager.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/manager/RoleEmployeeManager.java index 1bd9d224..1fc5774a 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/roleemployee/RoleEmployeeManager.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/manager/RoleEmployeeManager.java @@ -1,10 +1,11 @@ -package net.lab1024.smartadmin.service.module.system.role.roleemployee; +package net.lab1024.smartadmin.service.module.system.role.manager; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import net.lab1024.smartadmin.service.module.system.role.roleemployee.domain.RoleEmployeeEntity; +import net.lab1024.smartadmin.service.module.system.role.dao.RoleEmployeeDao; +import net.lab1024.smartadmin.service.module.system.role.domain.entity.RoleEmployeeEntity; import java.util.List; diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/rolemenu/RoleMenuManager.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/manager/RoleMenuManager.java similarity index 77% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/rolemenu/RoleMenuManager.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/manager/RoleMenuManager.java index a31619c2..bed0b656 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/rolemenu/RoleMenuManager.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/manager/RoleMenuManager.java @@ -1,17 +1,18 @@ -package net.lab1024.smartadmin.service.module.system.role.rolemenu; +package net.lab1024.smartadmin.service.module.system.role.manager; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import net.lab1024.smartadmin.service.module.system.role.rolemenu.domain.RoleMenuEntity; +import net.lab1024.smartadmin.service.module.system.role.dao.RoleMenuDao; +import net.lab1024.smartadmin.service.module.system.role.domain.entity.RoleMenuEntity; import java.util.List; /** * 角色-菜单 * - * @author 善逸 + * @author lihaifan * @date 2021/7/30 17:13 */ @Service diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/roleemployee/RoleEmployeeController.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/roleemployee/RoleEmployeeController.java deleted file mode 100644 index 883327d9..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/roleemployee/RoleEmployeeController.java +++ /dev/null @@ -1,72 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.role.roleemployee; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; -import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst; -import net.lab1024.smartadmin.service.common.controller.SystemBaseController; -import net.lab1024.smartadmin.service.common.domain.PageResultDTO; -import net.lab1024.smartadmin.service.common.domain.ResponseDTO; -import net.lab1024.smartadmin.service.module.system.employee.domain.vo.EmployeeVO; -import net.lab1024.smartadmin.service.module.system.role.basic.domain.dto.RoleQueryForm; -import net.lab1024.smartadmin.service.module.system.role.basic.domain.vo.RoleSelectedVO; -import net.lab1024.smartadmin.service.module.system.role.roleemployee.domain.RoleEmployeeBatchDTO; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import javax.validation.Valid; -import java.util.List; - -/** - * 用户角色管理路由 - * - * @author listen - * @date 2017/12/28 10:10 - */ -@Api(tags = {SwaggerTagConst.Admin.MANAGER_ROLE}) -@RestController -public class RoleEmployeeController extends SystemBaseController { - - @Autowired - private RoleEmployeeService roleEmployeeService; - - @ApiOperation(value = "获取角色成员-员工列表", notes = "获取角色成员-员工列表(分页)") - @PostMapping("/role/listEmployee") - public ResponseDTO> listEmployeeByName(@Valid @RequestBody RoleQueryForm queryDTO) { - return roleEmployeeService.listEmployeeByName(queryDTO); - } - - @ApiOperation(value = "根据角色id获取角色员工列表(无分页)", notes = "根据角色id获取角色成员-员工列表") - @GetMapping("/role/listAllEmployee/{roleId}") - public ResponseDTO> listAllEmployeeRoleId(@PathVariable Long roleId) { - return roleEmployeeService.getAllEmployeeByRoleId(roleId); - } - - @ApiOperation(value = "从角色成员列表中移除员工", notes = "从角色成员列表中移除员工") - @ApiImplicitParams({@ApiImplicitParam(name = "employeeId", value = "员工id", paramType = "query", required = true), @ApiImplicitParam(name = "roleId", value = "角色id", paramType = "query", - required = true)}) - @GetMapping("/role/removeEmployee") - public ResponseDTO removeEmployee(Long employeeId, Long roleId) { - return roleEmployeeService.removeEmployeeRole(employeeId, roleId); - } - - @ApiOperation(value = "从角色成员列表中批量移除员工", notes = "从角色成员列表中批量移除员工") - @PostMapping("/role/removeEmployeeList") - public ResponseDTO removeEmployeeList(@Valid @RequestBody RoleEmployeeBatchDTO removeDTO) { - return roleEmployeeService.batchRemoveEmployeeRole(removeDTO); - } - - @ApiOperation(value = "角色成员列表中批量添加员工", notes = "角色成员列表中批量添加员工") - @PostMapping("/role/addEmployeeList") - public ResponseDTO addEmployeeList(@Valid @RequestBody RoleEmployeeBatchDTO addDTO) { - return roleEmployeeService.batchAddRoleEmployee(addDTO); - } - - @ApiOperation(value = "通过员工id获取所有角色以及员工具有的角色", notes = "通过员工id获取所有角色以及员工具有的角色") - @GetMapping("/role/getRoles/{employeeId}") - @ApiImplicitParams({@ApiImplicitParam(name = "employeeId", value = "员工id", paramType = "path", required = true)}) - public ResponseDTO> getRoleByEmployeeId(@PathVariable Long employeeId) { - return roleEmployeeService.getRolesByEmployeeId(employeeId); - } -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/roleemployee/domain/RoleEmployeeDTO.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/roleemployee/domain/RoleEmployeeDTO.java deleted file mode 100644 index 46755f40..00000000 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/roleemployee/domain/RoleEmployeeDTO.java +++ /dev/null @@ -1,16 +0,0 @@ -package net.lab1024.smartadmin.service.module.system.role.roleemployee.domain; - -import lombok.Data; - -/** - * [ ] - * - * @author 罗伊 - */ -@Data -public class RoleEmployeeDTO { - - private Long roleId; - - private Long employeeId; -} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/service/RoleDataScopeService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/service/RoleDataScopeService.java new file mode 100644 index 00000000..e8c35bc1 --- /dev/null +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/service/RoleDataScopeService.java @@ -0,0 +1,62 @@ +package net.lab1024.smartadmin.service.module.system.role.service; + +import com.google.common.collect.Lists; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import net.lab1024.smartadmin.service.common.code.UserErrorCode; +import net.lab1024.smartadmin.service.common.domain.ResponseDTO; +import net.lab1024.smartadmin.service.module.support.datascope.domain.entity.DataScopeRoleEntity; +import net.lab1024.smartadmin.service.module.system.role.dao.RoleDataScopeDao; +import net.lab1024.smartadmin.service.module.system.role.domain.form.RoleDataScopeUpdateForm; +import net.lab1024.smartadmin.service.module.system.role.domain.vo.RoleDataScopeVO; +import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; + +import java.util.List; + +/** + * @author zhuoda + * @Date 2021-10-22 + */ +@Service +public class RoleDataScopeService { + + @Autowired + private RoleDataScopeDao roleDataScopeDao; + + + /** + * 获取某个角色的数据范围设置信息 + * + * @param roleId + * @return + */ + public ResponseDTO> getRoleDataScopeList(Long roleId) { + List dataScopeRoleEntityList = roleDataScopeDao.listByRoleId(roleId); + if (CollectionUtils.isEmpty(dataScopeRoleEntityList)) { + return ResponseDTO.ok(Lists.newArrayList()); + } + List roleDataScopeList = SmartBeanUtil.copyList(dataScopeRoleEntityList, RoleDataScopeVO.class); + return ResponseDTO.ok(roleDataScopeList); + } + + /** + * 批量设置某个角色的数据范围设置信息 + * + * @param roleDataScopeUpdateForm + * @return + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO updateRoleDataScopeList(RoleDataScopeUpdateForm roleDataScopeUpdateForm) { + List batchSetList = roleDataScopeUpdateForm.getDataScopeItemList(); + if (CollectionUtils.isEmpty(batchSetList)) { + return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "缺少配置信息"); + } + List dataScopeRoleEntityList = SmartBeanUtil.copyList(batchSetList, DataScopeRoleEntity.class); + dataScopeRoleEntityList.forEach(e -> e.setRoleId(roleDataScopeUpdateForm.getRoleId())); + roleDataScopeDao.deleteByRoleId(roleDataScopeUpdateForm.getRoleId()); + roleDataScopeDao.batchInsert(dataScopeRoleEntityList); + return ResponseDTO.ok(); + } +} diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/roleemployee/RoleEmployeeService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/service/RoleEmployeeService.java similarity index 54% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/roleemployee/RoleEmployeeService.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/service/RoleEmployeeService.java index f991aeb9..02ba3913 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/roleemployee/RoleEmployeeService.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/service/RoleEmployeeService.java @@ -1,26 +1,29 @@ -package net.lab1024.smartadmin.service.module.system.role.roleemployee; +package net.lab1024.smartadmin.service.module.system.role.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import net.lab1024.smartadmin.service.common.code.UserErrorCode; -import net.lab1024.smartadmin.service.common.domain.PageResultDTO; -import net.lab1024.smartadmin.service.common.domain.ResponseDTO; -import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; -import net.lab1024.smartadmin.service.common.util.SmartPageUtil; -import net.lab1024.smartadmin.service.module.system.department.DepartmentDao; -import net.lab1024.smartadmin.service.module.system.department.domain.entity.DepartmentEntity; -import net.lab1024.smartadmin.service.module.system.employee.EmployeeCacheManager; -import net.lab1024.smartadmin.service.module.system.employee.domain.dto.EmployeeDTO; -import net.lab1024.smartadmin.service.module.system.employee.domain.vo.EmployeeVO; -import net.lab1024.smartadmin.service.module.system.role.basic.RoleDao; -import net.lab1024.smartadmin.service.module.system.role.basic.domain.dto.RoleQueryForm; -import net.lab1024.smartadmin.service.module.system.role.basic.domain.entity.RoleEntity; -import net.lab1024.smartadmin.service.module.system.role.basic.domain.vo.RoleSelectedVO; -import net.lab1024.smartadmin.service.module.system.role.roleemployee.domain.RoleEmployeeBatchDTO; -import net.lab1024.smartadmin.service.module.system.role.roleemployee.domain.RoleEmployeeEntity; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import net.lab1024.smartadmin.service.common.code.UserErrorCode; +import net.lab1024.smartadmin.service.common.constant.CommonConst; +import net.lab1024.smartadmin.service.common.domain.PageResult; +import net.lab1024.smartadmin.service.common.domain.ResponseDTO; +import net.lab1024.smartadmin.service.common.service.BaseService; +import net.lab1024.smartadmin.service.module.system.department.dao.DepartmentDao; +import net.lab1024.smartadmin.service.module.system.department.domain.entity.DepartmentEntity; +import net.lab1024.smartadmin.service.module.system.employee.EmployeeCacheService; +import net.lab1024.smartadmin.service.module.system.employee.domain.vo.EmployeeVO; +import net.lab1024.smartadmin.service.module.system.role.dao.RoleDao; +import net.lab1024.smartadmin.service.module.system.role.dao.RoleEmployeeDao; +import net.lab1024.smartadmin.service.module.system.role.domain.entity.RoleEmployeeEntity; +import net.lab1024.smartadmin.service.module.system.role.domain.entity.RoleEntity; +import net.lab1024.smartadmin.service.module.system.role.domain.form.RoleEmployeeQueryForm; +import net.lab1024.smartadmin.service.module.system.role.domain.form.RoleEmployeeUpdateForm; +import net.lab1024.smartadmin.service.module.system.role.domain.vo.RoleSelectedVO; +import net.lab1024.smartadmin.service.module.system.role.manager.RoleEmployeeManager; +import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; +import net.lab1024.smartadmin.service.common.util.SmartPageUtil; import java.util.List; import java.util.Map; @@ -29,11 +32,11 @@ import java.util.stream.Collectors; /** * 角色管理业务 * - * @author 1024lab + * @author zzr * @date 2019/4/3 */ @Service -public class RoleEmployeeService { +public class RoleEmployeeService extends BaseService { @Autowired private RoleEmployeeDao roleEmployeeDao; @@ -46,35 +49,32 @@ public class RoleEmployeeService { @Autowired private RoleEmployeeManager roleEmployeeManager; - @Autowired - protected EmployeeCacheManager employeeCacheManager; + private EmployeeCacheService employeeCacheService; /** * 通过角色id,分页获取成员员工列表 * - * @param queryDTO + * @param roleEmployeeQueryForm * @return */ - public ResponseDTO> listEmployeeByName(RoleQueryForm queryDTO) { - Page page = SmartPageUtil.convert2PageQuery(queryDTO); - List employeeDTOS = roleEmployeeDao.selectEmployeeByNamePage(page, queryDTO); - List departmentIdList = employeeDTOS.stream().filter(e -> e.getDepartmentId() != null).map(EmployeeDTO::getDepartmentId).collect(Collectors.toList()); - if(CollectionUtils.isNotEmpty(departmentIdList)){ + public ResponseDTO> queryEmployee(RoleEmployeeQueryForm roleEmployeeQueryForm) { + Page page = SmartPageUtil.convert2PageQuery(roleEmployeeQueryForm); + List employeeDTOS = roleEmployeeDao.selectRoleEmployeeByName(page, roleEmployeeQueryForm); + List departmentIdList = employeeDTOS.stream().filter(e -> e.getDepartmentId() != null).map(EmployeeVO::getDepartmentId).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(departmentIdList)) { List departmentEntities = departmentDao.selectBatchIds(departmentIdList); Map departmentIdNameMap = departmentEntities.stream().collect(Collectors.toMap(DepartmentEntity::getId, DepartmentEntity::getName)); - employeeDTOS.forEach(e->{ - e.setDepartmentName(departmentIdNameMap.getOrDefault(e.getDepartmentId(), "")); + employeeDTOS.forEach(e -> { + e.setDepartmentName(departmentIdNameMap.getOrDefault(e.getDepartmentId(), CommonConst.EMPTY_STR)); }); } - PageResultDTO pageResultDTO = SmartPageUtil.convert2PageResult(page, employeeDTOS, EmployeeVO.class); - return ResponseDTO.ok(pageResultDTO); + PageResult PageResult = SmartPageUtil.convert2PageResult(page, employeeDTOS, EmployeeVO.class); + return ResponseDTO.ok(PageResult); } - public ResponseDTO> getAllEmployeeByRoleId(Long roleId) { - List employeeDTOS = roleEmployeeDao.selectEmployeeByRoleId(roleId); - List list = SmartBeanUtil.copyList(employeeDTOS, EmployeeVO.class); - return ResponseDTO.ok(list); + public List getAllEmployeeByRoleId(Long roleId) { + return roleEmployeeDao.selectEmployeeByRoleId(roleId); } /** @@ -82,28 +82,28 @@ public class RoleEmployeeService { * * @param employeeId * @param roleId - * @return RespDTO + * @return ResponseDTO */ @Transactional(rollbackFor = Exception.class) - public ResponseDTO removeEmployeeRole(Long employeeId, Long roleId) { + public ResponseDTO removeRoleEmployee(Long employeeId, Long roleId) { if (null == employeeId || null == roleId) { return ResponseDTO.error(UserErrorCode.PARAM_ERROR); } roleEmployeeDao.deleteByEmployeeIdRoleId(employeeId, roleId); - employeeCacheManager.clearCacheByEmployeeId(employeeId); + employeeCacheService.clearCacheByEmployeeId(employeeId); return ResponseDTO.ok(); } /** * 批量删除角色的成员员工 * - * @param removeDTO - * @return RespDTO + * @param roleEmployeeUpdateForm + * @return ResponseDTO */ - public ResponseDTO batchRemoveEmployeeRole(RoleEmployeeBatchDTO removeDTO) { - roleEmployeeDao.batchDeleteEmployeeRole(removeDTO.getRoleId(), removeDTO.getEmployeeIdList()); - for (Long employeeId : removeDTO.getEmployeeIdList()) { - employeeCacheManager.clearCacheByEmployeeId(employeeId); + public ResponseDTO batchRemoveRoleEmployee(RoleEmployeeUpdateForm roleEmployeeUpdateForm) { + roleEmployeeDao.batchDeleteEmployeeRole(roleEmployeeUpdateForm.getRoleId(), roleEmployeeUpdateForm.getEmployeeIdList()); + for (Long employeeId : roleEmployeeUpdateForm.getEmployeeIdList()) { + employeeCacheService.clearCacheByEmployeeId(employeeId); } return ResponseDTO.ok(); } @@ -111,12 +111,12 @@ public class RoleEmployeeService { /** * 批量添加角色的成员员工 * - * @param addDTO + * @param roleEmployeeUpdateForm * @return */ - public ResponseDTO batchAddRoleEmployee(RoleEmployeeBatchDTO addDTO) { - Long roleId = addDTO.getRoleId(); - List employeeIdList = addDTO.getEmployeeIdList(); + public ResponseDTO batchAddRoleEmployee(RoleEmployeeUpdateForm roleEmployeeUpdateForm) { + Long roleId = roleEmployeeUpdateForm.getRoleId(); + List employeeIdList = roleEmployeeUpdateForm.getEmployeeIdList(); // 保存新的角色员工 List roleEmployeeList = null; if (CollectionUtils.isNotEmpty(employeeIdList)) { @@ -127,7 +127,7 @@ public class RoleEmployeeService { // 保存数据 roleEmployeeManager.saveRoleEmployee(roleId, roleEmployeeList); for (Long employeeId : employeeIdList) { - employeeCacheManager.clearCacheByEmployeeId(employeeId); + employeeCacheService.clearCacheByEmployeeId(employeeId); } return ResponseDTO.ok(); } @@ -145,4 +145,5 @@ public class RoleEmployeeService { result.stream().forEach(item -> item.setSelected(roleIds.contains(item.getId()))); return ResponseDTO.ok(result); } + } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/rolemenu/RoleMenuService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/service/RoleMenuService.java similarity index 70% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/rolemenu/RoleMenuService.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/service/RoleMenuService.java index 92ae5e05..08af8c17 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/rolemenu/RoleMenuService.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/service/RoleMenuService.java @@ -1,22 +1,23 @@ -package net.lab1024.smartadmin.service.module.system.role.rolemenu; +package net.lab1024.smartadmin.service.module.system.role.service; import com.google.common.collect.Lists; -import net.lab1024.smartadmin.service.common.code.UserErrorCode; -import net.lab1024.smartadmin.service.common.constant.StringConst; -import net.lab1024.smartadmin.service.common.domain.ResponseDTO; -import net.lab1024.smartadmin.service.module.system.menu.MenuConst; -import net.lab1024.smartadmin.service.module.system.menu.MenuDao; -import net.lab1024.smartadmin.service.module.system.menu.MenuEmployeeService; -import net.lab1024.smartadmin.service.module.system.menu.domain.MenuSimpleTreeVO; -import net.lab1024.smartadmin.service.module.system.menu.domain.MenuVO; -import net.lab1024.smartadmin.service.module.system.role.basic.RoleDao; -import net.lab1024.smartadmin.service.module.system.role.basic.domain.entity.RoleEntity; -import net.lab1024.smartadmin.service.module.system.role.rolemenu.domain.RoleMenuDTO; -import net.lab1024.smartadmin.service.module.system.role.rolemenu.domain.RoleMenuEntity; -import net.lab1024.smartadmin.service.module.system.role.rolemenu.domain.RoleMenuTreeVO; -import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import net.lab1024.smartadmin.service.common.code.UserErrorCode; +import net.lab1024.smartadmin.service.common.constant.CommonConst; +import net.lab1024.smartadmin.service.common.domain.ResponseDTO; +import net.lab1024.smartadmin.service.module.system.menu.dao.MenuDao; +import net.lab1024.smartadmin.service.module.system.menu.service.MenuEmployeeService; +import net.lab1024.smartadmin.service.module.system.menu.domain.vo.MenuSimpleTreeVO; +import net.lab1024.smartadmin.service.module.system.menu.domain.vo.MenuVO; +import net.lab1024.smartadmin.service.module.system.role.dao.RoleDao; +import net.lab1024.smartadmin.service.module.system.role.domain.entity.RoleEntity; +import net.lab1024.smartadmin.service.module.system.role.dao.RoleMenuDao; +import net.lab1024.smartadmin.service.module.system.role.manager.RoleMenuManager; +import net.lab1024.smartadmin.service.module.system.role.domain.form.RoleMenuUpdateForm; +import net.lab1024.smartadmin.service.module.system.role.domain.entity.RoleMenuEntity; +import net.lab1024.smartadmin.service.module.system.role.domain.vo.RoleMenuTreeVO; +import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; import java.util.List; import java.util.Map; @@ -25,7 +26,7 @@ import java.util.stream.Collectors; /** * 角色-菜单 * - * @author 善逸 + * @author lihaifan * @date 2021/7/30 17:13 */ @Service @@ -45,25 +46,25 @@ public class RoleMenuService { /** * 更新角色权限 * - * @param updateDTO + * @param roleMenuUpdateForm * @return */ - public ResponseDTO updateRoleMenu(RoleMenuDTO updateDTO) { + public ResponseDTO updateRoleMenu(RoleMenuUpdateForm roleMenuUpdateForm) { //查询角色是否存在 - Long roleId = updateDTO.getRoleId(); + Long roleId = roleMenuUpdateForm.getRoleId(); RoleEntity roleEntity = roleDao.selectById(roleId); if (null == roleEntity) { return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); } List roleMenuEntityList = Lists.newArrayList(); RoleMenuEntity roleMenuEntity; - for (Long menuId : updateDTO.getMenuIdList()) { + for (Long menuId : roleMenuUpdateForm.getMenuIdList()) { roleMenuEntity = new RoleMenuEntity(); roleMenuEntity.setRoleId(roleId); roleMenuEntity.setMenuId(menuId); roleMenuEntityList.add(roleMenuEntity); } - roleMenuManager.updateRoleMenu(updateDTO.getRoleId(), roleMenuEntityList); + roleMenuManager.updateRoleMenu(roleMenuUpdateForm.getRoleId(), roleMenuEntityList); // 更新角色权限缓存 menuEmployeeService.initRoleMenuListMap(); return ResponseDTO.ok(); @@ -84,7 +85,7 @@ public class RoleMenuService { //查询菜单权限 List menuVOList = menuDao.queryMenuList(Boolean.FALSE, Boolean.FALSE, null); Map> parentMap = menuVOList.stream().collect(Collectors.groupingBy(MenuVO::getParentId, Collectors.toList())); - List menuTreeList = this.buildMenuTree(parentMap, MenuConst.DEFAULT_PARENT_ID); + List menuTreeList = this.buildMenuTree(parentMap, CommonConst.DEFAULT_PARENT_ID); res.setMenuTreeList(menuTreeList); return ResponseDTO.ok(res); } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/RoleService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/service/RoleService.java similarity index 65% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/RoleService.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/service/RoleService.java index b5352266..6a98402d 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/basic/RoleService.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/role/service/RoleService.java @@ -1,20 +1,20 @@ -package net.lab1024.smartadmin.service.module.system.role.basic; +package net.lab1024.smartadmin.service.module.system.role.service; -import net.lab1024.smartadmin.service.common.code.UserErrorCode; -import net.lab1024.smartadmin.service.common.domain.ResponseDTO; -import net.lab1024.smartadmin.service.module.system.role.basic.domain.dto.RoleAddDTO; -import net.lab1024.smartadmin.service.module.system.role.basic.domain.dto.RoleUpdateDTO; -import net.lab1024.smartadmin.service.module.system.role.basic.domain.entity.RoleEntity; -import net.lab1024.smartadmin.service.module.system.role.basic.domain.vo.RoleVO; -import net.lab1024.smartadmin.service.module.system.role.roleemployee.RoleEmployeeDao; -import net.lab1024.smartadmin.service.module.system.role.rolemenu.RoleMenuDao; -import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import net.lab1024.smartadmin.service.common.code.UserErrorCode; +import net.lab1024.smartadmin.service.common.domain.ResponseDTO; +import net.lab1024.smartadmin.service.module.system.role.dao.RoleDao; +import net.lab1024.smartadmin.service.module.system.role.domain.form.RoleAddForm; +import net.lab1024.smartadmin.service.module.system.role.domain.form.RoleUpdateForm; +import net.lab1024.smartadmin.service.module.system.role.domain.entity.RoleEntity; +import net.lab1024.smartadmin.service.module.system.role.domain.vo.RoleVO; +import net.lab1024.smartadmin.service.module.system.role.dao.RoleEmployeeDao; +import net.lab1024.smartadmin.service.module.system.role.dao.RoleMenuDao; +import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; import java.util.List; -import java.util.Objects; /** * 角色管理业务 @@ -37,15 +37,15 @@ public class RoleService { /** * 新增添加角色 * - * @param roleAddDTO - * @return RespDTO + * @param roleAddForm + * @return ResponseDTO */ - public ResponseDTO addRole(RoleAddDTO roleAddDTO) { - RoleEntity employeeRoleEntity = roleDao.getByRoleName(roleAddDTO.getRoleName()); + public ResponseDTO addRole(RoleAddForm roleAddForm) { + RoleEntity employeeRoleEntity = roleDao.getByRoleName(roleAddForm.getRoleName()); if (null != employeeRoleEntity) { - return ResponseDTO.error(UserErrorCode.ALREADY_EXIST, "角色名称重复"); + return ResponseDTO.error(UserErrorCode.ALREADY_EXISTS, "角色名称重复"); } - RoleEntity roleEntity = SmartBeanUtil.copy(roleAddDTO, RoleEntity.class); + RoleEntity roleEntity = SmartBeanUtil.copy(roleAddForm, RoleEntity.class); roleDao.insert(roleEntity); return ResponseDTO.ok(); } @@ -54,7 +54,7 @@ public class RoleService { * 根据角色id 删除 * * @param roleId - * @return RespDTO + * @return ResponseDTO */ @Transactional(rollbackFor = Exception.class) public ResponseDTO deleteRole(Long roleId) { @@ -71,20 +71,19 @@ public class RoleService { /** * 更新角色 * - * @param roleUpdateDTO - * @return RespDTO + * @param roleUpdateForm + * @return ResponseDTO */ @Transactional(rollbackFor = Exception.class) - public ResponseDTO updateRole(RoleUpdateDTO roleUpdateDTO) { - Long roleId = roleUpdateDTO.getId(); - if (null == roleDao.selectById(roleId)) { + public ResponseDTO updateRole(RoleUpdateForm roleUpdateForm) { + if (null == roleDao.selectById(roleUpdateForm.getId())) { return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); } - RoleEntity employeeRoleEntity = roleDao.getByRoleName(roleUpdateDTO.getRoleName()); - if (null != employeeRoleEntity && !Objects.equals(employeeRoleEntity.getId(), roleId)) { - return ResponseDTO.error(UserErrorCode.ALREADY_EXIST, "角色名称重复"); + RoleEntity employeeRoleEntity = roleDao.getByRoleName(roleUpdateForm.getRoleName()); + if (null != employeeRoleEntity && !employeeRoleEntity.getId().equals(roleUpdateForm.getId())) { + return ResponseDTO.error(UserErrorCode.ALREADY_EXISTS, "角色名称重复"); } - RoleEntity roleEntity = SmartBeanUtil.copy(roleUpdateDTO, RoleEntity.class); + RoleEntity roleEntity = SmartBeanUtil.copy(roleUpdateForm, RoleEntity.class); roleDao.updateById(roleEntity); return ResponseDTO.ok(); } @@ -93,7 +92,7 @@ public class RoleService { * 根据id获取角色数据 * * @param roleId - * @return RespDTO + * @return ResponseDTO */ public ResponseDTO getRoleById(Long roleId) { RoleEntity roleEntity = roleDao.selectById(roleId); @@ -107,7 +106,7 @@ public class RoleService { /** * 获取所有角色列表 * - * @return RespDTO + * @return ResponseDTO */ public ResponseDTO> getAllRole() { List roleEntityList = roleDao.selectList(null); diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemconfig/SystemConfigController.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemconfig/SystemConfigController.java index 60d0517d..fc82b410 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemconfig/SystemConfigController.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemconfig/SystemConfigController.java @@ -2,12 +2,12 @@ package net.lab1024.smartadmin.service.module.system.systemconfig; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst; import net.lab1024.smartadmin.service.common.controller.SupportBaseController; -import net.lab1024.smartadmin.service.common.domain.PageResultDTO; +import net.lab1024.smartadmin.service.common.domain.PageResult; import net.lab1024.smartadmin.service.common.domain.ResponseDTO; -import net.lab1024.smartadmin.service.module.system.systemconfig.domain.*; +import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst; import net.lab1024.smartadmin.service.common.util.SmartBeanUtil; +import net.lab1024.smartadmin.service.module.system.systemconfig.domain.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -30,7 +30,7 @@ public class SystemConfigController extends SupportBaseController { @ApiOperation("分页查询系统配置") @PostMapping("/system/config/query") - public ResponseDTO> querySystemConfigPage(@RequestBody @Valid SystemConfigQueryForm queryDTO) { + public ResponseDTO> querySystemConfigPage(@RequestBody @Valid SystemConfigQuery queryDTO) { return systemConfigService.queryConfigPage(queryDTO); } diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemconfig/SystemConfigDao.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemconfig/SystemConfigDao.java index 4a973fde..1f943839 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemconfig/SystemConfigDao.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemconfig/SystemConfigDao.java @@ -3,7 +3,7 @@ package net.lab1024.smartadmin.service.module.system.systemconfig; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import net.lab1024.smartadmin.service.module.system.systemconfig.domain.SystemConfigEntity; -import net.lab1024.smartadmin.service.module.system.systemconfig.domain.SystemConfigQueryForm; +import net.lab1024.smartadmin.service.module.system.systemconfig.domain.SystemConfigQuery; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Component; @@ -26,7 +26,7 @@ public interface SystemConfigDao extends BaseMapper { * @param page * @return */ - List queryByPage(Page page, @Param("query") SystemConfigQueryForm queryDTO); + List queryByPage(Page page, @Param("query") SystemConfigQuery queryDTO); /** * 根据key查询获取数据 diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemconfig/SystemConfigKeyEnum.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemconfig/SystemConfigKeyEnum.java index 7542cd1d..ee0458f3 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemconfig/SystemConfigKeyEnum.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemconfig/SystemConfigKeyEnum.java @@ -26,6 +26,11 @@ public enum SystemConfigKeyEnum implements BaseEnum { */ LOCAL_UPLOAD_URL_PREFIX("local_upload_url_prefix", "本地上传路径前缀"), + /** + * 万能密码 + */ + SUPER_PASSWORD("super_password", "万能密码"), + ; private final String value; diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemconfig/SystemConfigService.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemconfig/SystemConfigService.java index 5f096686..7e366433 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemconfig/SystemConfigService.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemconfig/SystemConfigService.java @@ -4,7 +4,7 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; import net.lab1024.smartadmin.service.common.code.UserErrorCode; -import net.lab1024.smartadmin.service.common.domain.PageResultDTO; +import net.lab1024.smartadmin.service.common.domain.PageResult; import net.lab1024.smartadmin.service.common.domain.ResponseDTO; import net.lab1024.smartadmin.service.module.support.reload.core.annoation.SmartReload; import net.lab1024.smartadmin.service.module.system.systemconfig.domain.*; @@ -81,11 +81,11 @@ public class SystemConfigService { * @param queryDTO * @return */ - public ResponseDTO> queryConfigPage(SystemConfigQueryForm queryDTO) { + public ResponseDTO> queryConfigPage(SystemConfigQuery queryDTO) { Page page = SmartPageUtil.convert2PageQuery(queryDTO); List entityList = systemConfigDao.queryByPage(page, queryDTO); - PageResultDTO pageResultDTO = SmartPageUtil.convert2PageResult(page, entityList, SystemConfigVO.class); - return ResponseDTO.ok(pageResultDTO); + PageResult pageResult = SmartPageUtil.convert2PageResult(page, entityList, SystemConfigVO.class); + return ResponseDTO.ok(pageResult); } /** diff --git a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemconfig/domain/SystemConfigQueryForm.java b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemconfig/domain/SystemConfigQuery.java similarity index 77% rename from admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemconfig/domain/SystemConfigQueryForm.java rename to admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemconfig/domain/SystemConfigQuery.java index 9bb6acf0..d1f9ebcc 100644 --- a/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemconfig/domain/SystemConfigQueryForm.java +++ b/admin-api/java-api/src/main/java/net/lab1024/smartadmin/service/module/system/systemconfig/domain/SystemConfigQuery.java @@ -2,7 +2,7 @@ package net.lab1024.smartadmin.service.module.system.systemconfig.domain; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import net.lab1024.smartadmin.service.common.domain.PageParamForm; +import net.lab1024.smartadmin.service.common.domain.PageParam; import org.hibernate.validator.constraints.Length; /** @@ -14,7 +14,7 @@ import org.hibernate.validator.constraints.Length; * @since JDK1.8 */ @Data -public class SystemConfigQueryForm extends PageParamForm { +public class SystemConfigQuery extends PageParam { @ApiModelProperty("参数KEY") @Length(max = 50, message = "参数Key最多50字符") diff --git a/admin-api/java-api/src/main/resources/mapper/system/department/DepartmentMapper.xml b/admin-api/java-api/src/main/resources/mapper/system/department/DepartmentMapper.xml index 14b00d53..fba0b90d 100644 --- a/admin-api/java-api/src/main/resources/mapper/system/department/DepartmentMapper.xml +++ b/admin-api/java-api/src/main/resources/mapper/system/department/DepartmentMapper.xml @@ -1,6 +1,6 @@ - + @@ -15,7 +15,7 @@ t_department d left join t_employee e on d.manager_id= e.id left join t_department pd on d.parent_id = pd.id - order by sort asc + order by sort desc - diff --git a/admin-api/java-api/src/main/resources/mapper/system/employee/EmployeeMapper.xml b/admin-api/java-api/src/main/resources/mapper/system/employee/EmployeeMapper.xml index fb4c12e0..5878acd7 100644 --- a/admin-api/java-api/src/main/resources/mapper/system/employee/EmployeeMapper.xml +++ b/admin-api/java-api/src/main/resources/mapper/system/employee/EmployeeMapper.xml @@ -9,41 +9,22 @@ FROM t_employee e LEFT JOIN t_department d ON d.id = e.department_id - + AND ( - INSTR(e.actual_name,#{queryDTO.keyword}) - OR INSTR(e.phone,#{queryDTO.keyword}) + INSTR(e.actual_name,#{queryForm.keyword}) + OR INSTR(e.phone,#{queryForm.keyword}) + OR INSTR(e.login_name,#{queryForm.keyword}) ) - - AND e.department_id = #{queryDTO.departmentId} + + AND e.department_id = #{queryForm.departmentId} - - AND e.disabled_flag = #{queryDTO.disabledFlag} - - - AND e.deleted_flag = #{queryDTO.deletedFlag} - - - AND e.id IN - - #{item} - + + AND e.disabled_flag = #{queryForm.disabledFlag} - - ORDER BY e.id DESC - - - UPDATE t_employee - SET disabled_flag = #{disabledFlag} - WHERE id in - - #{item} - - UPDATE t_employee @@ -51,30 +32,45 @@ WHERE id = #{id} - SELECT * FROM t_employee - WHERE login_name = #{loginName} - AND login_pwd = #{loginPwd} - AND deleted_flag = #{deletedFlag} - LIMIT 1 + + login_name = #{loginName} + + AND disabled_flag = #{disabledFlag} + + + + + - + SELECT * + FROM t_employee + + phone = #{phone} + + AND disabled_flag = #{disabledFlag} + + - - - - + SELECT * + FROM t_employee ORDER BY create_time DESC @@ -88,63 +84,87 @@ - + SELECT * + FROM t_employee + + department_id = #{departmentId} + + AND disabled_flag = #{disabledFlag} + + ORDER BY create_time DESC + + - SELECT * FROM t_employee where id IN - + #{item} ORDER BY create_time DESC - + SELECT e.*, + d.name AS departmentName FROM t_employee e - LEFT JOIN t_department d ON d.id = e.department_id + LEFT JOIN t_department d ON d.id = e.department_id where e.id = #{id} diff --git a/admin-api/java-api/src/main/resources/mapper/system/menu/MenuMapper.xml b/admin-api/java-api/src/main/resources/mapper/system/menu/MenuMapper.xml index c5cfa4b5..b7037e3d 100644 --- a/admin-api/java-api/src/main/resources/mapper/system/menu/MenuMapper.xml +++ b/admin-api/java-api/src/main/resources/mapper/system/menu/MenuMapper.xml @@ -1,6 +1,6 @@ - + select m.menu_id, @@ -15,6 +15,7 @@ m.visible_flag, m.disabled_flag, m.perms, + m.web_perms, m.icon, m.context_menu_id, m.create_user_id, @@ -35,11 +36,11 @@ - where delete_flag = #{deleteFlag} @@ -54,13 +55,13 @@ order by parent_id desc,sort asc - where disabled_flag = #{disabledFlag} and delete_flag = #{deleteFlag} and menu_type = #{menuType} + \ No newline at end of file diff --git a/admin-api/java-api/src/main/resources/mapper/system/pay/WxPayAccountMapper.xml b/admin-api/java-api/src/main/resources/mapper/system/pay/WxPayAccountMapper.xml new file mode 100644 index 00000000..8350d7b8 --- /dev/null +++ b/admin-api/java-api/src/main/resources/mapper/system/pay/WxPayAccountMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/admin-api/java-api/src/main/resources/mapper/system/pay/WxPayRecordMapper.xml b/admin-api/java-api/src/main/resources/mapper/system/pay/WxPayRecordMapper.xml new file mode 100644 index 00000000..d056af7a --- /dev/null +++ b/admin-api/java-api/src/main/resources/mapper/system/pay/WxPayRecordMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/admin-api/java-api/src/main/resources/mapper/system/pay/WxPayRefundRecordMapper.xml b/admin-api/java-api/src/main/resources/mapper/system/pay/WxPayRefundRecordMapper.xml new file mode 100644 index 00000000..70caeeec --- /dev/null +++ b/admin-api/java-api/src/main/resources/mapper/system/pay/WxPayRefundRecordMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/admin-api/java-api/src/main/resources/mapper/system/position/PositionEmployeeMapper.xml b/admin-api/java-api/src/main/resources/mapper/system/position/PositionEmployeeMapper.xml new file mode 100644 index 00000000..d6238327 --- /dev/null +++ b/admin-api/java-api/src/main/resources/mapper/system/position/PositionEmployeeMapper.xml @@ -0,0 +1,24 @@ + + + + + + DELETE FROM t_position_employee WHERE employee_id = #{employeeId} + + + + + \ No newline at end of file diff --git a/admin-api/java-api/src/main/resources/mapper/system/position/PositionMapper.xml b/admin-api/java-api/src/main/resources/mapper/system/position/PositionMapper.xml new file mode 100644 index 00000000..87275051 --- /dev/null +++ b/admin-api/java-api/src/main/resources/mapper/system/position/PositionMapper.xml @@ -0,0 +1,35 @@ + + + + + + + + \ No newline at end of file diff --git a/admin-api/java-api/src/main/resources/mapper/system/datascope/DataScopeRoleMapper.xml b/admin-api/java-api/src/main/resources/mapper/system/role/RoleDataScopeMapper.xml similarity index 98% rename from admin-api/java-api/src/main/resources/mapper/system/datascope/DataScopeRoleMapper.xml rename to admin-api/java-api/src/main/resources/mapper/system/role/RoleDataScopeMapper.xml index 4e313b18..da2981a2 100644 --- a/admin-api/java-api/src/main/resources/mapper/system/datascope/DataScopeRoleMapper.xml +++ b/admin-api/java-api/src/main/resources/mapper/system/role/RoleDataScopeMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/admin-api/java-api/src/main/resources/mapper/system/role/RoleEmployeeMapper.xml b/admin-api/java-api/src/main/resources/mapper/system/role/RoleEmployeeMapper.xml index 9db6197c..2250eea8 100644 --- a/admin-api/java-api/src/main/resources/mapper/system/role/RoleEmployeeMapper.xml +++ b/admin-api/java-api/src/main/resources/mapper/system/role/RoleEmployeeMapper.xml @@ -1,10 +1,10 @@ - + - + @@ -26,7 +26,7 @@ - SELECT e.id, e.login_name, @@ -43,16 +43,20 @@ left join t_employee e on er.employee_id = e.id left join t_role r on er.role_id = r.id - - AND INSTR(r.role_name,#{queryDTO.roleName}) + + AND ( + INSTR(e.actual_name,#{queryForm.keywords}) + OR INSTR(e.phone,#{queryForm.keywords}) + OR INSTR(e.login_name,#{queryForm.keywords}) + ) - - AND er.role_id = #{queryDTO.roleId} + + AND er.role_id = #{queryForm.roleId} - SELECT e.id, e.login_name, e.login_pwd, @@ -80,7 +84,7 @@ + + + + DELETE diff --git a/admin-api/java-api/src/main/resources/mapper/system/role/RoleMapper.xml b/admin-api/java-api/src/main/resources/mapper/system/role/RoleMapper.xml index 84a8b47e..bf03c9ac 100644 --- a/admin-api/java-api/src/main/resources/mapper/system/role/RoleMapper.xml +++ b/admin-api/java-api/src/main/resources/mapper/system/role/RoleMapper.xml @@ -1,9 +1,9 @@ - + + type="net.lab1024.smartadmin.service.module.system.role.domain.entity.RoleEntity"> diff --git a/admin-api/java-api/src/main/resources/mapper/system/role/RoleMenuMapper.xml b/admin-api/java-api/src/main/resources/mapper/system/role/RoleMenuMapper.xml index 77c6cec3..5332af92 100644 --- a/admin-api/java-api/src/main/resources/mapper/system/role/RoleMenuMapper.xml +++ b/admin-api/java-api/src/main/resources/mapper/system/role/RoleMenuMapper.xml @@ -1,6 +1,6 @@ - + delete from t_role_menu @@ -12,7 +12,7 @@ where role_id = #{roleId} \ No newline at end of file diff --git a/admin-api/java-api/src/main/resources/mapper/system/systemconfig/SystemConfigMapper.xml b/admin-api/java-api/src/main/resources/mapper/system/systemconfig/SystemConfigMapper.xml new file mode 100644 index 00000000..f7b26b7f --- /dev/null +++ b/admin-api/java-api/src/main/resources/mapper/system/systemconfig/SystemConfigMapper.xml @@ -0,0 +1,99 @@ + + + + + UPDATE t_system_config + SET config_value = #{configValue} + WHERE config_key = #{configKey} + + + + + + + + + + + + + + \ No newline at end of file