同步1.9.0

This commit is contained in:
Jerry
2021-09-01 20:08:27 +08:00
parent 6e84b4234c
commit 4f4995e6f0
198 changed files with 4017 additions and 1500 deletions

View File

@@ -20,6 +20,11 @@
<artifactId>upms-api</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.orange.demo</groupId>
<artifactId>common-log</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.orange.demo</groupId>
<artifactId>common-redis</artifactId>

View File

@@ -6,7 +6,7 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.mybatis.spring.annotation.MapperScan;
import tk.mybatis.spring.annotation.MapperScan;
import javax.sql.DataSource;

View File

@@ -14,8 +14,7 @@ import com.orange.demo.common.core.util.*;
import com.orange.demo.common.redis.cache.SessionCacheHelper;
import com.orange.demo.upmsapi.constant.SysUserStatus;
import com.orange.demo.upmsapi.constant.SysUserType;
import com.orange.demo.upmsservice.model.SysMenu;
import com.orange.demo.upmsservice.model.SysUser;
import com.orange.demo.upmsservice.model.*;
import com.orange.demo.upmsservice.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder;
@@ -165,9 +164,10 @@ public class LoginController {
}
private JSONObject buildLoginData(SysUser user) {
int deviceType = MyCommonUtil.getDeviceType();
boolean isAdmin = user.getUserType() == SysUserType.TYPE_ADMIN;
TokenData tokenData = new TokenData();
String sessionId = user.getLoginName() + "_" + MyCommonUtil.generateUuid();
String sessionId = user.getLoginName() + "_" + deviceType + "_" + MyCommonUtil.generateUuid();
tokenData.setUserId(user.getUserId());
tokenData.setIsAdmin(isAdmin);
tokenData.setLoginName(user.getLoginName());
@@ -175,6 +175,7 @@ public class LoginController {
tokenData.setSessionId(sessionId);
tokenData.setLoginIp(IpUtil.getRemoteIpAddress(ContextUtil.getHttpRequest()));
tokenData.setLoginTime(new Date());
tokenData.setDeviceType(deviceType);
// 这里手动将TokenData存入request便于OperationLogAspect统一处理操作日志。
TokenData.addToRequest(tokenData);
JSONObject jsonData = new JSONObject();

View File

@@ -1,5 +1,6 @@
package com.orange.demo.upmsservice.controller;
import com.alibaba.fastjson.TypeReference;
import com.github.pagehelper.page.PageMethod;
import com.orange.demo.upmsservice.model.*;
import com.orange.demo.upmsservice.service.*;
@@ -52,7 +53,6 @@ public class SysUserController extends BaseController<SysUser, SysUserVo, Long>
* @param roleIdListString 逗号分隔的角色Id列表。
* @return 应答结果对象包含新增用户的主键Id。
*/
@SuppressWarnings("unchecked")
@ApiOperationSupport(ignoreParameters = {
"sysUserDto.userId",
"sysUserDto.createTimeStart",
@@ -65,11 +65,12 @@ public class SysUserController extends BaseController<SysUser, SysUserVo, Long>
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
}
SysUser sysUser = MyModelUtil.copyTo(sysUserDto, SysUser.class);
CallResult result = sysUserService.verifyRelatedData(sysUser, null, roleIdListString);
CallResult result = sysUserService.verifyRelatedData(
sysUser, null, roleIdListString);
if (!result.isSuccess()) {
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, result.getErrorMessage());
}
Set<Long> roleIdSet = (Set<Long>) result.getData().get("roleIdSet");
Set<Long> roleIdSet = result.getData().getObject("roleIdSet", new TypeReference<Set<Long>>() {});
sysUserService.saveNew(sysUser, roleIdSet);
return ResponseResult.success(sysUser.getUserId());
}
@@ -81,7 +82,6 @@ public class SysUserController extends BaseController<SysUser, SysUserVo, Long>
* @param roleIdListString 逗号分隔的角色Id列表。
* @return 应答结果对象。
*/
@SuppressWarnings("unchecked")
@ApiOperationSupport(ignoreParameters = {
"sysUserDto.createTimeStart",
"sysUserDto.createTimeEnd"})
@@ -97,11 +97,12 @@ public class SysUserController extends BaseController<SysUser, SysUserVo, Long>
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
}
SysUser sysUser = MyModelUtil.copyTo(sysUserDto, SysUser.class);
CallResult result = sysUserService.verifyRelatedData(sysUser, originalUser, roleIdListString);
CallResult result = sysUserService.verifyRelatedData(
sysUser, originalUser, roleIdListString);
if (!result.isSuccess()) {
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, result.getErrorMessage());
}
Set<Long> roleIdSet = (Set<Long>) result.getData().get("roleIdSet");
Set<Long> roleIdSet = result.getData().getObject("roleIdSet", new TypeReference<Set<Long>>() {});
if (!sysUserService.update(sysUser, originalUser, roleIdSet)) {
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
}

View File

@@ -1,6 +1,6 @@
package com.orange.demo.upmsservice.model;
import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import com.orange.demo.common.core.annotation.RelationManyToMany;
import com.orange.demo.common.core.base.model.BaseModel;
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
@@ -11,6 +11,7 @@ import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;
import javax.persistence.*;
import java.util.*;
/**
@@ -21,55 +22,56 @@ import java.util.*;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "zz_sys_menu")
@Table(name = "zz_sys_menu")
public class SysMenu extends BaseModel {
/**
* 主键Id。
*/
@TableId(value = "menu_id")
@Id
@Column(name = "menu_id")
private Long menuId;
/**
* 父菜单Id目录菜单的父菜单为null。
*/
@TableField(value = "parent_id")
@Column(name = "parent_id")
private Long parentId;
/**
* 菜单显示名称。
*/
@TableField(value = "menu_name")
@Column(name = "menu_name")
private String menuName;
/**
* 菜单类型(0: 目录 1: 菜单 2: 按钮 3: UI片段)。
*/
@TableField(value = "menu_type")
@Column(name = "menu_type")
private Integer menuType;
/**
* 前端表单路由名称仅用于menu_type为1的菜单类型。
*/
@TableField(value = "form_router_name")
@Column(name = "form_router_name")
private String formRouterName;
/**
* 在线表单主键Id仅用于在线表单绑定的菜单。
*/
@TableField(value = "online_form_id")
@Column(name = "online_form_id")
private Long onlineFormId;
/**
* 在线表单菜单的权限控制类型具体值可参考SysOnlineMenuPermType常量对象。
*/
@TableField(value = "online_menu_perm_type")
@Column(name = "online_menu_perm_type")
private Integer onlineMenuPermType;
/**
* 菜单显示顺序 (值越小,排序越靠前)。
*/
@TableField(value = "show_order")
@Column(name = "show_order")
private Integer showOrder;
/**
@@ -80,15 +82,15 @@ public class SysMenu extends BaseModel {
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
@TableLogic
@TableField(value = "deleted_flag")
@DeletedFlagColumn
@Column(name = "deleted_flag")
private Integer deletedFlag;
@RelationManyToMany(
relationMapperName = "sysMenuPermCodeMapper",
relationMasterIdField = "menuId",
relationModelClass = SysMenuPermCode.class)
@TableField(exist = false)
@Transient
private List<SysMenuPermCode> sysMenuPermCodeList;
@Mapper

View File

@@ -1,8 +1,9 @@
package com.orange.demo.upmsservice.model;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import javax.persistence.*;
/**
* 菜单与权限字关联实体对象。
*
@@ -10,18 +11,20 @@ import lombok.Data;
* @date 2020-08-08
*/
@Data
@TableName(value = "zz_sys_menu_perm_code")
@Table(name = "zz_sys_menu_perm_code")
public class SysMenuPermCode {
/**
* 关联菜单Id。
*/
@TableField(value = "menu_id")
@Id
@Column(name = "menu_id")
private Long menuId;
/**
* 关联权限字Id。
*/
@TableField(value = "perm_code_id")
@Id
@Column(name = "perm_code_id")
private Long permCodeId;
}

View File

@@ -1,11 +1,12 @@
package com.orange.demo.upmsservice.model;
import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import com.orange.demo.common.core.base.model.BaseModel;
import com.orange.demo.common.core.annotation.RelationDict;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.persistence.*;
import java.util.*;
/**
@@ -16,25 +17,26 @@ import java.util.*;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "zz_sys_perm")
@Table(name = "zz_sys_perm")
public class SysPerm extends BaseModel {
/**
* 权限Id。
*/
@TableId(value = "perm_id")
@Id
@Column(name = "perm_id")
private Long permId;
/**
* 权限所在的权限模块Id。
*/
@TableField(value = "module_id")
@Column(name = "module_id")
private Long moduleId;
/**
* 权限名称。
*/
@TableField(value = "perm_name")
@Column(name = "perm_name")
private String permName;
/**
@@ -45,14 +47,14 @@ public class SysPerm extends BaseModel {
/**
* 权限在当前模块下的顺序,由小到大。
*/
@TableField(value = "show_order")
@Column(name = "show_order")
private Integer showOrder;
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
@TableLogic
@TableField(value = "deleted_flag")
@DeletedFlagColumn
@Column(name = "deleted_flag")
private Integer deletedFlag;
@RelationDict(
@@ -61,6 +63,6 @@ public class SysPerm extends BaseModel {
slaveModelClass = SysPermModule.class,
slaveIdField = "moduleId",
slaveNameField = "moduleName")
@TableField(exist = false)
@Transient
private Map<String, Object> moduleIdDictMap;
}

View File

@@ -1,6 +1,6 @@
package com.orange.demo.upmsservice.model;
import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import com.orange.demo.common.core.annotation.RelationManyToMany;
import com.orange.demo.common.core.base.model.BaseModel;
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
@@ -11,6 +11,7 @@ import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;
import javax.persistence.*;
import java.util.*;
/**
@@ -21,57 +22,58 @@ import java.util.*;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "zz_sys_perm_code")
@Table(name = "zz_sys_perm_code")
public class SysPermCode extends BaseModel {
/**
* 主键Id。
*/
@TableId(value = "perm_code_id")
@Id
@Column(name = "perm_code_id")
private Long permCodeId;
/**
* 上级权限字Id。
*/
@TableField(value = "parent_id")
@Column(name = "parent_id")
private Long parentId;
/**
* 权限字标识(一般为有含义的英文字符串)。
*/
@TableField(value = "perm_code")
@Column(name = "perm_code")
private String permCode;
/**
* 权限类型(0: 表单 1: UI片段 2: 操作)。
*/
@TableField(value = "perm_code_type")
@Column(name = "perm_code_type")
private Integer permCodeType;
/**
* 显示名称。
*/
@TableField(value = "show_name")
@Column(name = "show_name")
private String showName;
/**
* 显示顺序(数值越小,越靠前)。
*/
@TableField(value = "show_order")
@Column(name = "show_order")
private Integer showOrder;
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
@TableLogic
@TableField(value = "deleted_flag")
@DeletedFlagColumn
@Column(name = "deleted_flag")
private Integer deletedFlag;
@RelationManyToMany(
relationMapperName = "sysPermCodePermMapper",
relationMasterIdField = "permCodeId",
relationModelClass = SysPermCodePerm.class)
@TableField(exist = false)
@Transient
private List<SysPermCodePerm> sysPermCodePermList;
@Mapper

View File

@@ -1,8 +1,9 @@
package com.orange.demo.upmsservice.model;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import javax.persistence.*;
/**
* 权限字与权限资源关联实体对象。
*
@@ -10,18 +11,20 @@ import lombok.Data;
* @date 2020-08-08
*/
@Data
@TableName(value = "zz_sys_perm_code_perm")
@Table(name = "zz_sys_perm_code_perm")
public class SysPermCodePerm {
/**
* 权限字Id。
*/
@TableField(value = "perm_code_id")
@Id
@Column(name = "perm_code_id")
private Long permCodeId;
/**
* 权限Id。
*/
@TableField(value = "perm_id")
@Id
@Column(name = "perm_id")
private Long permId;
}

View File

@@ -1,10 +1,11 @@
package com.orange.demo.upmsservice.model;
import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import com.orange.demo.common.core.base.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.persistence.*;
import java.util.*;
/**
@@ -15,46 +16,47 @@ import java.util.*;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "zz_sys_perm_module")
@Table(name = "zz_sys_perm_module")
public class SysPermModule extends BaseModel {
/**
* 权限模块Id。
*/
@TableId(value = "module_id")
@Id
@Column(name = "module_id")
private Long moduleId;
/**
* 上级权限模块Id。
*/
@TableField(value = "parent_id")
@Column(name = "parent_id")
private Long parentId;
/**
* 权限模块名称。
*/
@TableField(value = "module_name")
@Column(name = "module_name")
private String moduleName;
/**
* 权限模块类型(0: 普通模块 1: Controller模块)。
*/
@TableField(value = "module_type")
@Column(name = "module_type")
private Integer moduleType;
/**
* 权限模块在当前层级下的顺序,由小到大。
*/
@TableField(value = "show_order")
@Column(name = "show_order")
private Integer showOrder;
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
@TableLogic
@TableField(value = "deleted_flag")
@DeletedFlagColumn
@Column(name = "deleted_flag")
private Integer deletedFlag;
@TableField(exist = false)
@Transient
private List<SysPerm> sysPermList;
}

View File

@@ -1,8 +1,9 @@
package com.orange.demo.upmsservice.model;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import javax.persistence.*;
/**
* 白名单实体对象。
*
@@ -10,24 +11,25 @@ import lombok.Data;
* @date 2020-08-08
*/
@Data
@TableName(value = "zz_sys_perm_whitelist")
@Table(name = "zz_sys_perm_whitelist")
public class SysPermWhitelist {
/**
* 权限资源的URL。
*/
@TableId(value = "perm_url")
@Id
@Column(name = "perm_url")
private String permUrl;
/**
* 权限资源所属模块名字(通常是Controller的名字)。
*/
@TableField(value = "module_name")
@Column(name = "module_name")
private String moduleName;
/**
* 权限的名称。
*/
@TableField(value = "perm_name")
@Column(name = "perm_name")
private String permName;
}

View File

@@ -1,6 +1,6 @@
package com.orange.demo.upmsservice.model;
import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import com.orange.demo.common.core.annotation.RelationManyToMany;
import com.orange.demo.common.core.base.model.BaseModel;
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
@@ -11,6 +11,7 @@ import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;
import javax.persistence.*;
import java.util.*;
/**
@@ -21,33 +22,34 @@ import java.util.*;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "zz_sys_role")
@Table(name = "zz_sys_role")
public class SysRole extends BaseModel {
/**
* 主键Id。
*/
@TableId(value = "role_id")
@Id
@Column(name = "role_id")
private Long roleId;
/**
* 角色名称。
*/
@TableField(value = "role_name")
@Column(name = "role_name")
private String roleName;
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
@TableLogic
@TableField(value = "deleted_flag")
@DeletedFlagColumn
@Column(name = "deleted_flag")
private Integer deletedFlag;
@RelationManyToMany(
relationMapperName = "sysRoleMenuMapper",
relationMasterIdField = "roleId",
relationModelClass = SysRoleMenu.class)
@TableField(exist = false)
@Transient
private List<SysRoleMenu> sysRoleMenuList;
@Mapper

View File

@@ -1,8 +1,9 @@
package com.orange.demo.upmsservice.model;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import javax.persistence.*;
/**
* 角色菜单实体对象。
*
@@ -10,18 +11,20 @@ import lombok.Data;
* @date 2020-08-08
*/
@Data
@TableName(value = "zz_sys_role_menu")
@Table(name = "zz_sys_role_menu")
public class SysRoleMenu {
/**
* 角色Id。
*/
@TableField(value = "role_id")
@Id
@Column(name = "role_id")
private Long roleId;
/**
* 菜单Id。
*/
@TableField(value = "menu_id")
@Id
@Column(name = "menu_id")
private Long menuId;
}

View File

@@ -1,6 +1,5 @@
package com.orange.demo.upmsservice.model;
import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.upmsapi.vo.SysUserVo;
import com.orange.demo.upmsapi.constant.SysUserType;
import com.orange.demo.upmsapi.constant.SysUserStatus;
@@ -8,10 +7,12 @@ import com.orange.demo.common.core.annotation.RelationConstDict;
import com.orange.demo.common.core.annotation.RelationManyToMany;
import com.orange.demo.common.core.base.model.BaseModel;
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;
import javax.persistence.*;
import java.util.Map;
import java.util.List;
@@ -24,19 +25,20 @@ import java.util.List;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "zz_sys_user")
@Table(name = "zz_sys_user")
public class SysUser extends BaseModel {
/**
* 用户Id。
*/
@TableId(value = "user_id")
@Id
@Column(name = "user_id")
private Long userId;
/**
* 登录用户名。
*/
@TableField(value = "login_name")
@Column(name = "login_name")
private String loginName;
/**
@@ -47,44 +49,44 @@ public class SysUser extends BaseModel {
/**
* 用户显示名称。
*/
@TableField(value = "show_name")
@Column(name = "show_name")
private String showName;
/**
* 用户类型(0: 管理员 1: 系统管理用户 2: 系统业务用户)。
*/
@TableField(value = "user_type")
@Column(name = "user_type")
private Integer userType;
/**
* 用户头像的Url。
*/
@TableField(value = "head_image_url")
@Column(name = "head_image_url")
private String headImageUrl;
/**
* 用户状态(0: 正常 1: 锁定)。
*/
@TableField(value = "user_status")
@Column(name = "user_status")
private Integer userStatus;
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
@TableLogic
@TableField(value = "deleted_flag")
@DeletedFlagColumn
@Column(name = "deleted_flag")
private Integer deletedFlag;
/**
* createTime 范围过滤起始值(>=)。
*/
@TableField(exist = false)
@Transient
private String createTimeStart;
/**
* createTime 范围过滤结束值(<=)。
*/
@TableField(exist = false)
@Transient
private String createTimeEnd;
/**
@@ -94,19 +96,19 @@ public class SysUser extends BaseModel {
relationMapperName = "sysUserRoleMapper",
relationMasterIdField = "userId",
relationModelClass = SysUserRole.class)
@TableField(exist = false)
@Transient
private List<SysUserRole> sysUserRoleList;
@RelationConstDict(
masterIdField = "userType",
constantDictClass = SysUserType.class)
@TableField(exist = false)
@Transient
private Map<String, Object> userTypeDictMap;
@RelationConstDict(
masterIdField = "userStatus",
constantDictClass = SysUserStatus.class)
@TableField(exist = false)
@Transient
private Map<String, Object> userStatusDictMap;
@Mapper

View File

@@ -1,8 +1,9 @@
package com.orange.demo.upmsservice.model;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import javax.persistence.*;
/**
* 用户角色实体对象。
*
@@ -10,18 +11,20 @@ import lombok.Data;
* @date 2020-08-08
*/
@Data
@TableName(value = "zz_sys_user_role")
@Table(name = "zz_sys_user_role")
public class SysUserRole {
/**
* 用户Id。
*/
@TableField(value = "user_id")
@Id
@Column(name = "user_id")
private Long userId;
/**
* 角色Id。
*/
@TableField(value = "role_id")
@Id
@Column(name = "role_id")
private Long roleId;
}

View File

@@ -154,10 +154,10 @@ public interface SysUserService extends IBaseService<SysUser, Long> {
/**
* 验证用户对象关联的数据是否都合法。
*
* @param sysUser 当前操作的对象。
* @param originalSysUser 原有对象。
* @param roleIdListString 逗号分隔的角色Id列表字符串。
* @param sysUser 当前操作的对象。
* @param originalSysUser 原有对象。
* @param roleIds 逗号分隔的角色Id列表字符串。
* @return 验证结果。
*/
CallResult verifyRelatedData(SysUser sysUser, SysUser originalSysUser, String roleIdListString);
CallResult verifyRelatedData(SysUser sysUser, SysUser originalSysUser, String roleIds);
}

View File

@@ -2,9 +2,6 @@ package com.orange.demo.upmsservice.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.orange.demo.common.core.base.service.BaseService;
import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
import com.orange.demo.common.core.base.dao.BaseDaoMapper;
@@ -26,6 +23,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import java.util.*;
import java.util.stream.Collectors;
@@ -76,12 +74,14 @@ public class SysMenuServiceImpl extends BaseService<SysMenu, Long> implements Sy
MyModelUtil.fillCommonsForInsert(sysMenu);
sysMenuMapper.insert(sysMenu);
if (permCodeIdSet != null) {
List<SysMenuPermCode> sysMenuPermCodeList = new LinkedList<>();
for (Long permCodeId : permCodeIdSet) {
SysMenuPermCode menuPermCode = new SysMenuPermCode();
menuPermCode.setMenuId(sysMenu.getMenuId());
menuPermCode.setPermCodeId(permCodeId);
sysMenuPermCodeMapper.insert(menuPermCode);
sysMenuPermCodeList.add(menuPermCode);
}
sysMenuPermCodeMapper.insertList(sysMenuPermCodeList);
}
// 判断当前菜单是否为指向在线表单的菜单,并将根据约定,动态插入两个子菜单。
if (sysMenu.getOnlineFormId() != null) {
@@ -124,27 +124,30 @@ public class SysMenuServiceImpl extends BaseService<SysMenu, Long> implements Sy
public boolean update(SysMenu sysMenu, SysMenu originalSysMenu, Set<Long> permCodeIdSet) {
MyModelUtil.fillCommonsForUpdate(sysMenu, originalSysMenu);
sysMenu.setMenuType(originalSysMenu.getMenuType());
UpdateWrapper<SysMenu> uw = this.createUpdateQueryForNullValue(sysMenu, sysMenu.getMenuId());
if (sysMenuMapper.update(sysMenu, uw) != 1) {
sysMenu.setDeletedFlag(GlobalDeletedFlag.NORMAL);
if (sysMenuMapper.updateByPrimaryKey(sysMenu) != 1) {
return false;
}
SysMenuPermCode deletedMenuPermCode = new SysMenuPermCode();
deletedMenuPermCode.setMenuId(sysMenu.getMenuId());
sysMenuPermCodeMapper.delete(new QueryWrapper<>(deletedMenuPermCode));
sysMenuPermCodeMapper.delete(deletedMenuPermCode);
if (permCodeIdSet != null) {
List<SysMenuPermCode> sysMenuPermCodeList = new LinkedList<>();
for (Long permCodeId : permCodeIdSet) {
SysMenuPermCode menuPermCode = new SysMenuPermCode();
menuPermCode.setMenuId(sysMenu.getMenuId());
menuPermCode.setPermCodeId(permCodeId);
sysMenuPermCodeMapper.insert(menuPermCode);
sysMenuPermCodeList.add(menuPermCode);
}
sysMenuPermCodeMapper.insertList(sysMenuPermCodeList);
}
// 如果当前菜单的在线表单Id变化了就需要同步更新他的内置子菜单也同步更新。
if (ObjectUtil.notEqual(originalSysMenu.getOnlineFormId(), sysMenu.getOnlineFormId())) {
SysMenu onlineSubMenu = new SysMenu();
onlineSubMenu.setOnlineFormId(sysMenu.getOnlineFormId());
sysMenuMapper.update(onlineSubMenu,
new QueryWrapper<SysMenu>().lambda().eq(SysMenu::getParentId, sysMenu.getMenuId()));
Example e = new Example(SysMenu.class);
e.createCriteria().andEqualTo("parentId", sysMenu.getMenuId());
sysMenuMapper.updateByExampleSelective(onlineSubMenu, e);
}
return true;
}
@@ -159,18 +162,23 @@ public class SysMenuServiceImpl extends BaseService<SysMenu, Long> implements Sy
@Override
public boolean remove(SysMenu menu) {
Long menuId = menu.getMenuId();
if (sysMenuMapper.deleteById(menuId) != 1) {
if (!this.removeById(menuId)) {
return false;
}
SysRoleMenu roleMenu = new SysRoleMenu();
roleMenu.setMenuId(menuId);
sysRoleMenuMapper.delete(new QueryWrapper<>(roleMenu));
sysRoleMenuMapper.delete(roleMenu);
SysMenuPermCode menuPermCode = new SysMenuPermCode();
menuPermCode.setMenuId(menuId);
sysMenuPermCodeMapper.delete(new QueryWrapper<>(menuPermCode));
sysMenuPermCodeMapper.delete(menuPermCode);
// 如果为指向在线表单的菜单,则连同删除子菜单
if (menu.getOnlineFormId() != null) {
sysMenuMapper.delete(new QueryWrapper<SysMenu>().lambda().eq(SysMenu::getParentId, menuId));
Example e = new Example(SysMenu.class);
Example.Criteria c = e.createCriteria().andEqualTo("parentId", menuId);
c.andEqualTo("deletedFlag", GlobalDeletedFlag.NORMAL);
SysMenu deletedSubMenu = new SysMenu();
deletedSubMenu.setDeletedFlag(GlobalDeletedFlag.DELETED);
sysMenuMapper.updateByExampleSelective(deletedSubMenu, e);
}
return true;
}
@@ -182,11 +190,12 @@ public class SysMenuServiceImpl extends BaseService<SysMenu, Long> implements Sy
*/
@Override
public Collection<SysMenu> getAllMenuList() {
QueryWrapper<SysMenu> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByAsc(this.safeMapToColumnName("showOrder"));
queryWrapper.in(this.safeMapToColumnName("menuType"),
Arrays.asList(SysMenuType.TYPE_MENU, SysMenuType.TYPE_DIRECTORY));
return sysMenuMapper.selectList(queryWrapper);
Example e = new Example(SysMenu.class);
e.orderBy("showOrder");
Example.Criteria c = e.createCriteria();
c.andIn("menuType", Arrays.asList(SysMenuType.TYPE_MENU, SysMenuType.TYPE_DIRECTORY));
c.andEqualTo("deletedFlag", GlobalDeletedFlag.NORMAL);
return sysMenuMapper.selectByExample(e);
}
/**
@@ -285,12 +294,12 @@ public class SysMenuServiceImpl extends BaseService<SysMenu, Long> implements Sy
*/
@Override
public List<SysMenu> getAllOnlineMenuList(Integer menuType) {
LambdaQueryWrapper<SysMenu> queryWrapper =
new QueryWrapper<SysMenu>().lambda().isNotNull(SysMenu::getOnlineFormId);
Example e = new Example(SysMenu.class);
Example.Criteria c = e.createCriteria().andIsNotNull("onlineFormId");
if (menuType != null) {
queryWrapper.eq(SysMenu::getMenuType, menuType);
c.andEqualTo("menuType", menuType);
}
return sysMenuMapper.selectList(queryWrapper);
return sysMenuMapper.selectByExample(e);
}
/**

View File

@@ -1,8 +1,6 @@
package com.orange.demo.upmsservice.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.orange.demo.common.core.base.service.BaseService;
import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
import com.orange.demo.common.core.base.dao.BaseDaoMapper;
@@ -95,12 +93,14 @@ public class SysPermCodeServiceImpl extends BaseService<SysPermCode, Long> imple
MyModelUtil.fillCommonsForInsert(sysPermCode);
sysPermCodeMapper.insert(sysPermCode);
if (permIdSet != null) {
List<SysPermCodePerm> sysPermCodePermList = new LinkedList<>();
for (Long permId : permIdSet) {
SysPermCodePerm permCodePerm = new SysPermCodePerm();
permCodePerm.setPermCodeId(sysPermCode.getPermCodeId());
permCodePerm.setPermId(permId);
sysPermCodePermMapper.insert(permCodePerm);
sysPermCodePermList.add(permCodePerm);
}
sysPermCodePermMapper.insertList(sysPermCodePermList);
}
return sysPermCode;
}
@@ -117,22 +117,23 @@ public class SysPermCodeServiceImpl extends BaseService<SysPermCode, Long> imple
@Override
public boolean update(SysPermCode sysPermCode, SysPermCode originalSysPermCode, Set<Long> permIdSet) {
sysPermCode.setParentId(originalSysPermCode.getParentId());
sysPermCode.setDeletedFlag(GlobalDeletedFlag.NORMAL);
MyModelUtil.fillCommonsForUpdate(sysPermCode, originalSysPermCode);
UpdateWrapper<SysPermCode> uw =
this.createUpdateQueryForNullValue(sysPermCode, sysPermCode.getPermCodeId());
if (sysPermCodeMapper.update(sysPermCode, uw) != 1) {
if (sysPermCodeMapper.updateByPrimaryKey(sysPermCode) != 1) {
return false;
}
SysPermCodePerm deletedPermCodePerm = new SysPermCodePerm();
deletedPermCodePerm.setPermCodeId(sysPermCode.getPermCodeId());
sysPermCodePermMapper.delete(new QueryWrapper<>(deletedPermCodePerm));
sysPermCodePermMapper.delete(deletedPermCodePerm);
if (permIdSet != null) {
List<SysPermCodePerm> sysPermCodePermList = new LinkedList<>();
for (Long permId : permIdSet) {
SysPermCodePerm permCodePerm = new SysPermCodePerm();
permCodePerm.setPermCodeId(sysPermCode.getPermCodeId());
permCodePerm.setPermId(permId);
sysPermCodePermMapper.insert(permCodePerm);
sysPermCodePermList.add(permCodePerm);
}
sysPermCodePermMapper.insertList(sysPermCodePermList);
}
return true;
}
@@ -146,15 +147,15 @@ public class SysPermCodeServiceImpl extends BaseService<SysPermCode, Long> imple
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long permCodeId) {
if (sysPermCodeMapper.deleteById(permCodeId) != 1) {
if (!this.removeById(permCodeId)) {
return false;
}
SysMenuPermCode menuPermCode = new SysMenuPermCode();
menuPermCode.setPermCodeId(permCodeId);
sysMenuPermCodeMapper.delete(new QueryWrapper<>(menuPermCode));
sysMenuPermCodeMapper.delete(menuPermCode);
SysPermCodePerm permCodePerm = new SysPermCodePerm();
permCodePerm.setPermCodeId(permCodeId);
sysPermCodePermMapper.delete(new QueryWrapper<>(permCodePerm));
sysPermCodePermMapper.delete(permCodePerm);
return true;
}

View File

@@ -71,7 +71,8 @@ public class SysPermModuleServiceImpl extends BaseService<SysPermModule, Long> i
@Override
public boolean update(SysPermModule sysPermModule, SysPermModule originalSysPermModule) {
MyModelUtil.fillCommonsForUpdate(sysPermModule, originalSysPermModule);
return sysPermModuleMapper.updateById(sysPermModule) != 0;
sysPermModule.setDeletedFlag(GlobalDeletedFlag.NORMAL);
return sysPermModuleMapper.updateByPrimaryKey(sysPermModule) != 0;
}
/**
@@ -83,7 +84,7 @@ public class SysPermModuleServiceImpl extends BaseService<SysPermModule, Long> i
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long moduleId) {
return sysPermModuleMapper.deleteById(moduleId) == 1;
return this.removeById(moduleId);
}
/**

View File

@@ -1,6 +1,5 @@
package com.orange.demo.upmsservice.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import cn.hutool.core.util.ObjectUtil;
import com.orange.demo.common.core.base.service.BaseService;
import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
@@ -19,6 +18,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import java.util.*;
@@ -78,7 +78,8 @@ public class SysPermServiceImpl extends BaseService<SysPerm, Long> implements Sy
@Override
public boolean update(SysPerm perm, SysPerm originalPerm) {
MyModelUtil.fillCommonsForUpdate(perm, originalPerm);
return sysPermMapper.updateById(perm) != 0;
perm.setDeletedFlag(GlobalDeletedFlag.NORMAL);
return sysPermMapper.updateByPrimaryKeySelective(perm) != 0;
}
/**
@@ -90,12 +91,12 @@ public class SysPermServiceImpl extends BaseService<SysPerm, Long> implements Sy
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long permId) {
if (sysPermMapper.deleteById(permId) != 1) {
if (!this.removeById(permId)) {
return false;
}
SysPermCodePerm permCodePerm = new SysPermCodePerm();
permCodePerm.setPermId(permId);
sysPermCodePermMapper.delete(new QueryWrapper<>(permCodePerm));
sysPermCodePermMapper.delete(permCodePerm);
return true;
}
@@ -107,13 +108,17 @@ public class SysPermServiceImpl extends BaseService<SysPerm, Long> implements Sy
*/
@Override
public List<SysPerm> getPermListWithRelation(SysPerm sysPermFilter) {
QueryWrapper<SysPerm> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByAsc(this.safeMapToColumnName("showOrder"));
queryWrapper.eq(ObjectUtil.isNotNull(sysPermFilter.getModuleId()),
this.safeMapToColumnName("moduleId"), sysPermFilter.getModuleId());
queryWrapper.like(ObjectUtil.isNotNull(sysPermFilter.getUrl()),
this.safeMapToColumnName("url"), "%" + sysPermFilter.getUrl() + "%");
List<SysPerm> permList = sysPermMapper.selectList(queryWrapper);
Example e = new Example(SysPerm.class);
e.orderBy("showOrder");
Example.Criteria c = e.createCriteria();
if (ObjectUtil.isNotNull(sysPermFilter.getModuleId())) {
c.andEqualTo("moduleId", sysPermFilter.getModuleId());
}
if (ObjectUtil.isNotNull(sysPermFilter.getUrl())) {
c.andLike("url", "%" + sysPermFilter.getUrl() + "%");
}
c.andEqualTo("deletedFlag", GlobalDeletedFlag.NORMAL);
List<SysPerm> permList = sysPermMapper.selectByExample(e);
// 这里因为权限只有字典数据,所以仅仅做字典关联。
this.buildRelationForDataList(permList, MyRelationParam.dictOnly());
return permList;

View File

@@ -1,6 +1,5 @@
package com.orange.demo.upmsservice.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.alibaba.fastjson.JSONObject;
import com.orange.demo.common.core.base.service.BaseService;
import com.orange.demo.common.core.base.dao.BaseDaoMapper;
@@ -71,12 +70,14 @@ public class SysRoleServiceImpl extends BaseService<SysRole, Long> implements Sy
MyModelUtil.fillCommonsForInsert(role);
sysRoleMapper.insert(role);
if (menuIdSet != null) {
List<SysRoleMenu> roleMenuList = new LinkedList<>();
for (Long menuId : menuIdSet) {
SysRoleMenu roleMenu = new SysRoleMenu();
roleMenu.setRoleId(role.getRoleId());
roleMenu.setMenuId(menuId);
sysRoleMenuMapper.insert(roleMenu);
roleMenuList.add(roleMenu);
}
sysRoleMenuMapper.insertList(roleMenuList);
}
return role;
}
@@ -92,20 +93,23 @@ public class SysRoleServiceImpl extends BaseService<SysRole, Long> implements Sy
@Transactional(rollbackFor = Exception.class)
@Override
public boolean update(SysRole role, SysRole originalRole, Set<Long> menuIdSet) {
role.setDeletedFlag(GlobalDeletedFlag.NORMAL);
MyModelUtil.fillCommonsForUpdate(role, originalRole);
if (sysRoleMapper.updateById(role) != 1) {
if (sysRoleMapper.updateByPrimaryKey(role) != 1) {
return false;
}
SysRoleMenu deletedRoleMenu = new SysRoleMenu();
deletedRoleMenu.setRoleId(role.getRoleId());
sysRoleMenuMapper.delete(new QueryWrapper<>(deletedRoleMenu));
sysRoleMenuMapper.delete(deletedRoleMenu);
if (menuIdSet != null) {
List<SysRoleMenu> roleMenuList = new LinkedList<>();
for (Long menuId : menuIdSet) {
SysRoleMenu roleMenu = new SysRoleMenu();
roleMenu.setRoleId(role.getRoleId());
roleMenu.setMenuId(menuId);
sysRoleMenuMapper.insert(roleMenu);
roleMenuList.add(roleMenu);
}
sysRoleMenuMapper.insertList(roleMenuList);
}
return true;
}
@@ -119,15 +123,15 @@ public class SysRoleServiceImpl extends BaseService<SysRole, Long> implements Sy
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long roleId) {
if (sysRoleMapper.deleteById(roleId) != 1) {
if (!this.removeById(roleId)) {
return false;
}
SysRoleMenu roleMenu = new SysRoleMenu();
roleMenu.setRoleId(roleId);
sysRoleMenuMapper.delete(new QueryWrapper<>(roleMenu));
sysRoleMenuMapper.delete(roleMenu);
SysUserRole userRole = new SysUserRole();
userRole.setRoleId(roleId);
sysUserRoleMapper.delete(new QueryWrapper<>(userRole));
sysUserRoleMapper.delete(userRole);
return true;
}
@@ -151,9 +155,7 @@ public class SysRoleServiceImpl extends BaseService<SysRole, Long> implements Sy
@Transactional(rollbackFor = Exception.class)
@Override
public void addUserRoleList(List<SysUserRole> userRoleList) {
for (SysUserRole userRole : userRoleList) {
sysUserRoleMapper.insert(userRole);
}
sysUserRoleMapper.insertList(userRoleList);
}
/**
@@ -169,7 +171,7 @@ public class SysRoleServiceImpl extends BaseService<SysRole, Long> implements Sy
SysUserRole userRole = new SysUserRole();
userRole.setRoleId(roleId);
userRole.setUserId(userId);
return sysUserRoleMapper.delete(new QueryWrapper<>(userRole)) == 1;
return sysUserRoleMapper.delete(userRole) == 1;
}
/**

View File

@@ -1,7 +1,5 @@
package com.orange.demo.upmsservice.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.alibaba.fastjson.JSONObject;
import com.orange.demo.upmsservice.service.*;
import com.orange.demo.upmsservice.dao.*;
@@ -21,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import java.util.*;
import java.util.stream.Collectors;
@@ -66,7 +65,8 @@ public class SysUserServiceImpl extends BaseService<SysUser, Long> implements Sy
public SysUser getSysUserByLoginName(String loginName) {
SysUser filter = new SysUser();
filter.setLoginName(loginName);
return sysUserMapper.selectOne(new QueryWrapper<>(filter));
filter.setDeletedFlag(GlobalDeletedFlag.NORMAL);
return sysUserMapper.selectOne(filter);
}
/**
@@ -86,12 +86,14 @@ public class SysUserServiceImpl extends BaseService<SysUser, Long> implements Sy
MyModelUtil.fillCommonsForInsert(user);
sysUserMapper.insert(user);
if (CollectionUtils.isNotEmpty(roleIdSet)) {
List<SysUserRole> userRoleList = new LinkedList<>();
for (Long roleId : roleIdSet) {
SysUserRole userRole = new SysUserRole();
userRole.setUserId(user.getUserId());
userRole.setRoleId(roleId);
sysUserRoleMapper.insert(userRole);
userRoleList.add(userRole);
}
sysUserRoleMapper.insertList(userRoleList);
}
return user;
}
@@ -110,21 +112,23 @@ public class SysUserServiceImpl extends BaseService<SysUser, Long> implements Sy
user.setLoginName(originalUser.getLoginName());
user.setPassword(originalUser.getPassword());
MyModelUtil.fillCommonsForUpdate(user, originalUser);
UpdateWrapper<SysUser> uw = this.createUpdateQueryForNullValue(user, user.getUserId());
if (sysUserMapper.update(user, uw) != 1) {
user.setDeletedFlag(GlobalDeletedFlag.NORMAL);
if (sysUserMapper.updateByPrimaryKey(user) != 1) {
return false;
}
// 先删除原有的User-Role关联关系再重新插入新的关联关系
SysUserRole deletedUserRole = new SysUserRole();
deletedUserRole.setUserId(user.getUserId());
sysUserRoleMapper.delete(new QueryWrapper<>(deletedUserRole));
sysUserRoleMapper.delete(deletedUserRole);
if (CollectionUtils.isNotEmpty(roleIdSet)) {
List<SysUserRole> userRoleList = new LinkedList<>();
for (Long roleId : roleIdSet) {
SysUserRole userRole = new SysUserRole();
userRole.setUserId(user.getUserId());
userRole.setRoleId(roleId);
sysUserRoleMapper.insert(userRole);
userRoleList.add(userRole);
}
sysUserRoleMapper.insertList(userRoleList);
}
return true;
}
@@ -138,10 +142,13 @@ public class SysUserServiceImpl extends BaseService<SysUser, Long> implements Sy
@Transactional(rollbackFor = Exception.class)
@Override
public boolean changePassword(Long userId, String newPass) {
Example e = new Example(SysUser.class);
e.createCriteria()
.andEqualTo(super.idFieldName, userId)
.andEqualTo(super.deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
SysUser updatedUser = new SysUser();
updatedUser.setUserId(userId);
updatedUser.setPassword(passwordEncoder.encode(newPass));
return sysUserMapper.updateById(updatedUser) == 1;
return sysUserMapper.updateByExampleSelective(updatedUser, e) == 1;
}
/**
@@ -153,12 +160,13 @@ public class SysUserServiceImpl extends BaseService<SysUser, Long> implements Sy
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long userId) {
if (sysUserMapper.deleteById(userId) == 0) {
// 这里先删除主数据
if (!this.removeById(userId)) {
return false;
}
SysUserRole userRole = new SysUserRole();
userRole.setUserId(userId);
sysUserRoleMapper.delete(new QueryWrapper<>(userRole));
sysUserRoleMapper.delete(userRole);
return true;
}
@@ -301,19 +309,19 @@ public class SysUserServiceImpl extends BaseService<SysUser, Long> implements Sy
/**
* 验证用户对象关联的数据是否都合法。
*
* @param sysUser 当前操作的对象。
* @param originalSysUser 原有对象。
* @param roleIdListString 逗号分隔的角色Id列表字符串。
* @param sysUser 当前操作的对象。
* @param originalSysUser 原有对象。
* @param roleIds 逗号分隔的角色Id列表字符串。
* @return 验证结果。
*/
@Override
public CallResult verifyRelatedData(SysUser sysUser, SysUser originalSysUser, String roleIdListString) {
public CallResult verifyRelatedData(SysUser sysUser, SysUser originalSysUser, String roleIds) {
JSONObject jsonObject = new JSONObject();
if (StringUtils.isBlank(roleIdListString)) {
if (StringUtils.isBlank(roleIds)) {
return CallResult.error("数据验证失败,用户的角色数据不能为空!");
}
Set<Long> roleIdSet = Arrays.stream(
roleIdListString.split(",")).map(Long::valueOf).collect(Collectors.toSet());
roleIds.split(",")).map(Long::valueOf).collect(Collectors.toSet());
if (!sysRoleService.existAllPrimaryKeys(roleIdSet)) {
return CallResult.error("数据验证失败,存在不合法的用户角色,请刷新后重试!");
}

View File

@@ -63,20 +63,23 @@
<orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:8.0.23" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.6" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.6" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.2" level="project" />
<orderEntry type="library" name="Maven: tk.mybatis:mapper-spring-boot-starter:2.1.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.4.6" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.3.2" level="project" />
<orderEntry type="library" name="Maven: tk.mybatis:mapper-core:1.1.5" level="project" />
<orderEntry type="library" name="Maven: javax.persistence:persistence-api:1.0" level="project" />
<orderEntry type="library" name="Maven: tk.mybatis:mapper-base:1.1.5" level="project" />
<orderEntry type="library" name="Maven: tk.mybatis:mapper-weekend:1.1.5" level="project" />
<orderEntry type="library" name="Maven: tk.mybatis:mapper-spring:1.1.5" level="project" />
<orderEntry type="library" name="Maven: tk.mybatis:mapper-extra:1.1.5" level="project" />
<orderEntry type="library" name="Maven: tk.mybatis:mapper-spring-boot-autoconfigure:2.1.5" level="project" />
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.3.0" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.5" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.5" level="project" />
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
@@ -99,6 +102,7 @@
<orderEntry type="library" name="Maven: io.github.classgraph:classgraph:4.1.7" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-bean-validators:2.10.5" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-webmvc:2.10.5" level="project" />
<orderEntry type="library" name="Maven: com.orange.demo:common-log:1.0.0" level="project" />
<orderEntry type="module" module-name="common-redis" />
<orderEntry type="library" name="Maven: org.redisson:redisson:3.15.4" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.63.Final" level="project" />