commit:修改微服务工程目录名称

This commit is contained in:
Jerry
2020-09-26 20:14:58 +08:00
parent d05ad53a17
commit 322b3bc19d
463 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.orange.demo</groupId>
<artifactId>upms</artifactId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>upms-interface</artifactId>
<version>1.0.0</version>
<name>upms-interface</name>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.orange.demo</groupId>
<artifactId>common-core</artifactId>
<version>1.0.0</version>
</dependency>
<!-- 通用业务依赖 -->
<dependency>
<groupId>com.orange.demo</groupId>
<artifactId>application-common</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,182 @@
package com.orange.demo.upmsinterface.client;
import com.orange.demo.common.core.config.FeignConfig;
import com.orange.demo.common.core.base.client.BaseClient;
import com.orange.demo.common.core.constant.ErrorCodeEnum;
import com.orange.demo.common.core.object.*;
import com.orange.demo.upmsinterface.dto.SysUserDto;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.*;
import java.util.*;
/**
* 用户管理服务远程数据操作访问接口。
*
* @author Orange Team
* @date 2020-08-08
*/
@FeignClient(
name = "upms",
configuration = FeignConfig.class,
fallbackFactory = SysUserClient.SysUserClientFallbackFactory.class)
public interface SysUserClient extends BaseClient<SysUserDto, Long> {
/**
* 基于主键的(In-list)条件获取远程数据接口。
*
* @param userIds 主键Id集合。
* @param withDict 是否包含字典关联。
* @return 应答结果对象,包含主对象的数据集合。
*/
@Override
@PostMapping("/sysUser/listByIds")
ResponseResult<List<SysUserDto>> listByIds(
@RequestParam("userIds") Set<Long> userIds,
@RequestParam("withDict") Boolean withDict);
/**
* 基于主键Id获取远程对象。
*
* @param userId 主键Id。
* @param withDict 是否包含字典关联。
* @return 应答结果对象,包含主对象数据。
*/
@Override
@PostMapping("/sysUser/getById")
ResponseResult<SysUserDto> getById(
@RequestParam("userId") Long userId,
@RequestParam("withDict") Boolean withDict);
/**
* 判断参数列表中指定的主键Id是否都存在。
*
* @param userIds 主键Id集合。
* @return 应答结果对象包含true全部存在否则false。
*/
@Override
@PostMapping("/sysUser/existIds")
ResponseResult<Boolean> existIds(@RequestParam("userIds") Set<Long> userIds);
/**
* 判断主键Id是否存在。
*
* @param userId 参数主键Id。
* @return 应答结果对象包含true表示存在否则false。
*/
@Override
@PostMapping("/sysUser/existId")
ResponseResult<Boolean> existId(@RequestParam("userId") Long userId);
/**
* 获取远程主对象中符合查询条件的数据列表。
*
* @param queryParam 查询参数。
* @return 应答结果对象,包含实体对象集合。
*/
@Override
@PostMapping("/sysUser/listBy")
ResponseResult<List<SysUserDto>> listBy(@RequestBody MyQueryParam queryParam);
/**
* 获取远程主对象中符合查询条件的单条数据对象。
*
* @param queryParam 查询参数。
* @return 应答结果对象,包含实体对象。
*/
@Override
@PostMapping("/sysUser/getBy")
ResponseResult<SysUserDto> getBy(@RequestBody MyQueryParam queryParam);
/**
* 获取远程主对象中符合查询条件的数据列表。
* 和listBy接口相比以Map列表的方式返回的主要目的是降低服务之间的耦合度。
*
* @param queryParam 查询参数。
* @return 应答结果对象,包含主对象集合。
*/
@Override
@PostMapping("/sysUser/listMapBy")
ResponseResult<List<Map<String, Object>>> listMapBy(@RequestBody MyQueryParam queryParam);
/**
* 获取远程主对象中符合查询条件的数据数量。
*
* @param queryParam 查询参数。
* @return 应答结果对象,包含结果数量。
*/
@Override
@PostMapping("/sysUser/countBy")
ResponseResult<Integer> countBy(@RequestBody MyQueryParam queryParam);
/**
* 获取远程对象中符合查询条件的分组聚合计算Map列表。
*
* @param aggregationParam 聚合参数。
* @return 应该结果对象包含聚合计算后的分组Map列表。
*/
@Override
@PostMapping("/sysUser/aggregateBy")
ResponseResult<List<Map<String, Object>>> aggregateBy(@RequestBody MyAggregationParam aggregationParam);
@Component("UpmsSysUserClientFallbackFactory")
@Slf4j
class SysUserClientFallbackFactory implements FallbackFactory<SysUserClient>, SysUserClient {
@Override
public ResponseResult<List<SysUserDto>> listByIds(
Set<Long> userIds, Boolean withDict) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<SysUserDto> getById(
Long userId, Boolean withDict) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<Boolean> existIds(Set<Long> userIds) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<Boolean> existId(Long userId) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<List<SysUserDto>> listBy(MyQueryParam queryParam) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<SysUserDto> getBy(MyQueryParam queryParam) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<List<Map<String, Object>>> listMapBy(MyQueryParam queryParam) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<Integer> countBy(MyQueryParam queryParam) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public ResponseResult<List<Map<String, Object>>> aggregateBy(MyAggregationParam aggregationParam) {
return ResponseResult.error(ErrorCodeEnum.RPC_DATA_ACCESS_FAILED);
}
@Override
public SysUserClient create(Throwable throwable) {
log.error("Exception For Feign Remote Call.", throwable);
return new SysUserClientFallbackFactory();
}
}
}

View File

@@ -0,0 +1,54 @@
package com.orange.demo.upmsinterface.constant;
import java.util.HashMap;
import java.util.Map;
/**
* 菜单类型常量对象。
*
* @author Orange Team
* @date 2020-08-08
*/
public final class SysMenuType {
/**
* 目录菜单。
*/
public static final int TYPE_DIRECTORY = 0;
/**
* 普通菜单。
*/
public static final int TYPE_MENU = 1;
/**
* 表单片段类型。
*/
public static final int TYPE_UI_FRAGMENT = 2;
/**
* 按钮类型。
*/
public static final int TYPE_BUTTON = 3;
private static final Map<Object, String> DICT_MAP = new HashMap<>(4);
static {
DICT_MAP.put(0, "目录菜单");
DICT_MAP.put(1, "普通菜单");
DICT_MAP.put(2, "表单片段类型");
DICT_MAP.put(3, "按钮类型");
}
/**
* 判断参数是否为当前常量字典的合法值。
*
* @param value 待验证的参数值。
* @return 合法返回true否则false。
*/
public static boolean isValid(Integer value) {
return value != null && DICT_MAP.containsKey(value);
}
/**
* 私有构造函数,明确标识该常量类的作用。
*/
private SysMenuType() {
}
}

View File

@@ -0,0 +1,49 @@
package com.orange.demo.upmsinterface.constant;
import java.util.HashMap;
import java.util.Map;
/**
* 权限字类型常量对象。
*
* @author Orange Team
* @date 2020-08-08
*/
public final class SysPermCodeType {
/**
* 表单权限字。
*/
public static final int TYPE_FORM = 0;
/**
* 表单片段布局权限字。
*/
public static final int TYPE_FRAGMENT = 1;
/**
* 操作权限字。
*/
public static final int TYPE_OPERATION = 2;
private static final Map<Object, String> DICT_MAP = new HashMap<>(3);
static {
DICT_MAP.put(0, "表单权限字");
DICT_MAP.put(1, "表单片段布局权限字");
DICT_MAP.put(2, "操作权限字");
}
/**
* 判断参数是否为当前常量字典的合法值。
*
* @param value 待验证的参数值。
* @return 合法返回true否则false。
*/
public static boolean isValid(Integer value) {
return value != null && DICT_MAP.containsKey(value);
}
/**
* 私有构造函数,明确标识该常量类的作用。
*/
private SysPermCodeType() {
}
}

View File

@@ -0,0 +1,44 @@
package com.orange.demo.upmsinterface.constant;
import java.util.HashMap;
import java.util.Map;
/**
* 权限资源模块类型常量对象。
*
* @author Orange Team
* @date 2020-08-08
*/
public final class SysPermModuleType {
/**
* 普通模块。
*/
public static final int TYPE_NORMAL = 0;
/**
* controller接口模块。
*/
public static final int TYPE_CONTROLLER = 1;
private static final Map<Object, String> DICT_MAP = new HashMap<>(2);
static {
DICT_MAP.put(0, "普通模块");
DICT_MAP.put(1, "controller接口模块");
}
/**
* 判断参数是否为当前常量字典的合法值。
*
* @param value 待验证的参数值。
* @return 合法返回true否则false。
*/
public static boolean isValid(Integer value) {
return value != null && DICT_MAP.containsKey(value);
}
/**
* 私有构造函数,明确标识该常量类的作用。
*/
private SysPermModuleType() {
}
}

View File

@@ -0,0 +1,44 @@
package com.orange.demo.upmsinterface.constant;
import java.util.HashMap;
import java.util.Map;
/**
* 用户状态常量字典对象。
*
* @author Orange Team
* @date 2020-08-08
*/
public final class SysUserStatus {
/**
* 正常状态。
*/
public static final int STATUS_NORMAL = 0;
/**
* 锁定状态。
*/
public static final int STATUS_LOCKED = 1;
private static final Map<Object, String> DICT_MAP = new HashMap<>(2);
static {
DICT_MAP.put(STATUS_NORMAL, "正常状态");
DICT_MAP.put(STATUS_LOCKED, "锁定状态");
}
/**
* 判断参数是否为当前常量字典的合法值。
*
* @param value 待验证的参数值。
* @return 合法返回true否则false。
*/
public static boolean isValid(Integer value) {
return value != null && DICT_MAP.containsKey(value);
}
/**
* 私有构造函数,明确标识该常量类的作用。
*/
private SysUserStatus() {
}
}

View File

@@ -0,0 +1,49 @@
package com.orange.demo.upmsinterface.constant;
import java.util.HashMap;
import java.util.Map;
/**
* 用户类型常量字典对象。
*
* @author Orange Team
* @date 2020-08-08
*/
public final class SysUserType {
/**
* 管理员。
*/
public static final int TYPE_ADMIN = 0;
/**
* 系统操作员。
*/
public static final int TYPE_SYSTEM = 1;
/**
* 普通操作员。
*/
public static final int TYPE_OPERATOR = 2;
private static final Map<Object, String> DICT_MAP = new HashMap<>(3);
static {
DICT_MAP.put(TYPE_ADMIN, "管理员");
DICT_MAP.put(TYPE_SYSTEM, "系统操作员");
DICT_MAP.put(TYPE_OPERATOR, "普通操作员");
}
/**
* 判断参数是否为当前常量字典的合法值。
*
* @param value 待验证的参数值。
* @return 合法返回true否则false。
*/
public static boolean isValid(Integer value) {
return value != null && DICT_MAP.containsKey(value);
}
/**
* 私有构造函数,明确标识该常量类的作用。
*/
private SysUserType() {
}
}

View File

@@ -0,0 +1,23 @@
package com.orange.demo.upmsinterface.dto;
import lombok.Data;
/**
* 数据权限与部门关联Dto。
*
* @author Orange Team
* @date 2020-08-08
*/
@Data
public class SysDataPermDeptDto {
/**
* 数据权限Id。
*/
private Long dataPermId;
/**
* 关联部门Id。
*/
private Long menuId;
}

View File

@@ -0,0 +1,72 @@
package com.orange.demo.upmsinterface.dto;
import com.orange.demo.common.core.validator.ConstDictRef;
import com.orange.demo.common.core.validator.UpdateGroup;
import com.orange.demo.upmsinterface.constant.SysMenuType;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 菜单Dto。
*
* @author Orange Team
* @date 2020-08-08
*/
@Data
public class SysMenuDto {
/**
* 主键Id。
*/
@NotNull(message = "菜单Id不能为空", groups = {UpdateGroup.class})
private Long menuId;
/**
* 父菜单Id目录菜单的父菜单为null
*/
private Long parentId;
/**
* 菜单显示名称。
*/
@NotBlank(message = "菜单显示名称不能为空!")
private String menuName;
/**
* (0: 目录 1: 菜单 2: 按钮 3: UI片段)。
*/
@NotNull(message = "菜单类型不能为空!")
@ConstDictRef(constDictClass = SysMenuType.class, message = "数据验证失败,菜单类型为无效值!")
private Integer menuType;
/**
* 前端表单路由名称仅用于menu_type为1的菜单类型。
*/
private String formRouterName;
/**
* 菜单显示顺序 (值越小,排序越靠前)。
*/
@NotNull(message = "菜单显示顺序不能为空!")
private Integer showOrder;
/**
* 菜单图标。
*/
private String icon;
/**
* 创建时间。
*/
private Date createTime;
/**
* 菜单与权限字关联对象列表。
*/
private List<Map<String, Object>> sysMenuPermCodeList;
}

View File

@@ -0,0 +1,68 @@
package com.orange.demo.upmsinterface.dto;
import com.orange.demo.common.core.validator.ConstDictRef;
import com.orange.demo.common.core.validator.UpdateGroup;
import com.orange.demo.upmsinterface.constant.SysPermCodeType;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 权限字Dto。
*
* @author Orange Team
* @date 2020-08-08
*/
@Data
public class SysPermCodeDto {
/**
* 主键Id。
*/
@NotNull(message = "权限字Id不能为空", groups = {UpdateGroup.class})
private Long permCodeId;
/**
* 权限字标识(一般为有含义的英文字符串)。
*/
@NotBlank(message = "权限字编码不能为空!")
private String permCode;
/**
* 上级权限字Id。
*/
private Long parentId;
/**
* 权限类型(0: 表单 1: UI片段 2: 操作)。
*/
@NotNull(message = "权限字类型不能为空!")
@ConstDictRef(constDictClass = SysPermCodeType.class, message = "数据验证失败,权限类型为无效值!")
private Integer permCodeType;
/**
* 显示名称。
*/
@NotBlank(message = "权限字显示名称不能为空!")
private String showName;
/**
* 显示顺序(数值越小,越靠前)。
*/
@NotNull(message = "权限字显示顺序不能为空!")
private Integer showOrder;
/**
* 创建时间。
*/
private Date createTime;
/**
* 权限字与权限资源关联对象列表。
*/
private List<Map<String, Object>> sysPermCodePermList;
}

View File

@@ -0,0 +1,64 @@
package com.orange.demo.upmsinterface.dto;
import com.orange.demo.common.core.validator.UpdateGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.Map;
/**
* 权限资源Dto。
*
* @author Orange Team
* @date 2020-08-08
*/
@Data
public class SysPermDto {
/**
* 权限Id。
*/
@NotNull(message = "权限Id不能为空", groups = {UpdateGroup.class})
private Long permId;
/**
* 权限名称。
*/
@NotBlank(message = "权限名称不能为空!")
private String permName;
/**
* shiro格式的权限码如(upms:sysUser:add)。
*/
private String permCode;
/**
* 权限所在的权限模块Id。
*/
@NotNull(message = "权限模块Id不能为空")
private Long moduleId;
/**
* 关联的URL。
*/
@NotBlank(message = "权限关联的url不能为空")
private String url;
/**
* 权限在当前模块下的顺序,由小到大。
*/
@NotNull(message = "权限显示顺序不能为空!")
private Integer showOrder;
/**
* 创建时间。
*/
private Date createTime;
/**
* 模块Id的字典关联数据。
*/
private Map<String, Object> moduleIdDictMap;
}

View File

@@ -0,0 +1,61 @@
package com.orange.demo.upmsinterface.dto;
import com.orange.demo.common.core.validator.ConstDictRef;
import com.orange.demo.common.core.validator.UpdateGroup;
import com.orange.demo.upmsinterface.constant.SysPermModuleType;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
/**
* 权限资源模块Dto。
*
* @author Orange Team
* @date 2020-08-08
*/
@Data
public class SysPermModuleDto {
/**
* 权限模块Id。
*/
@NotNull(message = "权限模块Id不能为空", groups = {UpdateGroup.class})
private Long moduleId;
/**
* 权限模块名称。
*/
@NotBlank(message = "权限模块名称不能为空!")
private String moduleName;
/**
* 上级权限模块Id。
*/
private Long parentId;
/**
* 权限模块类型(0: 普通模块 1: Controller模块)。
*/
@NotNull(message = "模块类型不能为空!")
@ConstDictRef(constDictClass = SysPermModuleType.class, message = "数据验证失败,权限模块类型为无效值!")
private Integer moduleType;
/**
* 权限模块在当前层级下的顺序,由小到大。
*/
@NotNull(message = "权限模块显示顺序不能为空!")
private Integer showOrder;
/**
* 创建时间。
*/
private Date createTime;
/**
* 权限资源对象列表。
*/
private List<SysPermDto> sysPermList;
}

View File

@@ -0,0 +1,62 @@
package com.orange.demo.upmsinterface.dto;
import com.orange.demo.common.core.validator.UpdateGroup;
import lombok.Data;
import javax.validation.constraints.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 角色Dto。
*
* @author Orange Team
* @date 2020-08-08
*/
@Data
public class SysRoleDto {
/**
* 主键Id。
*/
@NotNull(message = "角色Id不能为空", groups = {UpdateGroup.class})
private Long roleId;
/**
* 角色名称。
*/
@NotBlank(message = "角色名称不能为空!")
private String roleName;
/**
* 创建者。
*/
private Long createUserId;
/**
* 创建者显示名称。
*/
private String createUsername;
/**
* 创建时间。
*/
private Date createTime;
/**
* 更新时间。
*/
private Date updateTime;
/**
* 角色与菜单关联对象列表。
*/
private List<Map<String, Object>> sysRoleMenuList;
private Date createTimeStart;
private Date createTimeEnd;
private String searchString;
}

View File

@@ -0,0 +1,112 @@
package com.orange.demo.upmsinterface.dto;
import com.orange.demo.common.core.validator.UpdateGroup;
import com.orange.demo.common.core.validator.ConstDictRef;
import com.orange.demo.upmsinterface.constant.SysUserType;
import com.orange.demo.upmsinterface.constant.SysUserStatus;
import lombok.Data;
import javax.validation.constraints.*;
import java.util.Date;
import java.util.Map;
import java.util.List;
/**
* SysUserDto对象。
*
* @author Orange Team
* @date 2020-08-08
*/
@Data
public class SysUserDto {
/**
* 用户Id。
*/
@NotNull(message = "数据验证失败用户Id不能为空", groups = {UpdateGroup.class})
private Long userId;
/**
* 登录用户名。
*/
@NotBlank(message = "数据验证失败,登录用户名不能为空!")
private String loginName;
/**
* 用户密码。
*/
@NotBlank(message = "数据验证失败,用户密码不能为空!")
private String password;
/**
* 用户显示名称。
*/
@NotBlank(message = "数据验证失败,用户显示名称不能为空!")
private String showName;
/**
* 用户类型(0: 管理员 1: 系统管理用户 2: 系统业务用户)。
*/
@NotNull(message = "数据验证失败,用户类型(0: 管理员 1: 系统管理用户 2: 系统业务用户)不能为空!")
@ConstDictRef(constDictClass = SysUserType.class, message = "数据验证失败,用户类型(0: 管理员 1: 系统管理用户 2: 系统业务用户)为无效值!")
private Integer userType;
/**
* 用户头像的Url。
*/
private String headImageUrl;
/**
* 用户状态(0: 正常 1: 锁定)。
*/
@NotNull(message = "数据验证失败,用户状态(0: 正常 1: 锁定)不能为空!")
@ConstDictRef(constDictClass = SysUserStatus.class, message = "数据验证失败,用户状态(0: 正常 1: 锁定)为无效值!")
private Integer userStatus;
/**
* 创建用户Id。
*/
private Long createUserId;
/**
* 创建用户名。
*/
private String createUsername;
/**
* 创建时间。
*/
private Date createTime;
/**
* 更新时间。
*/
private Date updateTime;
/**
* createTime 范围过滤起始值(>=)。
*/
private String createTimeStart;
/**
* createTime 范围过滤结束值(<=)。
*/
private String createTimeEnd;
/**
* 多对多用户角色数据集合。
*/
private List<Map<String, Object>> sysUserRoleList;
/**
* userType 常量字典关联数据。
*/
private Map<String, Object> userTypeDictMap;
/**
* userStatus 常量字典关联数据。
*/
private Map<String, Object> userStatusDictMap;
}