commit:VO支持以及bug修复

This commit is contained in:
Jerry
2020-12-18 22:52:35 +08:00
parent ecec5ae30a
commit d86ae86f1c
558 changed files with 8019 additions and 10785 deletions

View File

@@ -5,6 +5,7 @@ import com.orange.demo.common.core.config.FeignConfig;
import com.orange.demo.common.core.base.client.BaseClient;
import com.orange.demo.common.core.object.*;
import com.orange.demo.upmsinterface.dto.SysUserDto;
import com.orange.demo.upmsinterface.vo.SysUserVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
@@ -22,7 +23,7 @@ import java.util.*;
name = "upms",
configuration = FeignConfig.class,
fallbackFactory = SysUserClient.SysUserClientFallbackFactory.class)
public interface SysUserClient extends BaseClient<SysUserDto, Long> {
public interface SysUserClient extends BaseClient<SysUserDto, SysUserVo, Long> {
/**
* 基于主键的(In-list)条件获取远程数据接口。
@@ -33,7 +34,7 @@ public interface SysUserClient extends BaseClient<SysUserDto, Long> {
*/
@Override
@PostMapping("/sysUser/listByIds")
ResponseResult<List<SysUserDto>> listByIds(
ResponseResult<List<SysUserVo>> listByIds(
@RequestParam("userIds") Set<Long> userIds,
@RequestParam("withDict") Boolean withDict);
@@ -46,7 +47,7 @@ public interface SysUserClient extends BaseClient<SysUserDto, Long> {
*/
@Override
@PostMapping("/sysUser/getById")
ResponseResult<SysUserDto> getById(
ResponseResult<SysUserVo> getById(
@RequestParam("userId") Long userId,
@RequestParam("withDict") Boolean withDict);
@@ -98,7 +99,7 @@ public interface SysUserClient extends BaseClient<SysUserDto, Long> {
*/
@Override
@PostMapping("/sysUser/listBy")
ResponseResult<List<SysUserDto>> listBy(@RequestBody MyQueryParam queryParam);
ResponseResult<MyPageData<SysUserVo>> listBy(@RequestBody MyQueryParam queryParam);
/**
* 获取远程主对象中符合查询条件的单条数据对象。
@@ -108,7 +109,7 @@ public interface SysUserClient extends BaseClient<SysUserDto, Long> {
*/
@Override
@PostMapping("/sysUser/getBy")
ResponseResult<SysUserDto> getBy(@RequestBody MyQueryParam queryParam);
ResponseResult<SysUserVo> getBy(@RequestBody MyQueryParam queryParam);
/**
* 获取远程主对象中符合查询条件的数据列表。
@@ -119,7 +120,7 @@ public interface SysUserClient extends BaseClient<SysUserDto, Long> {
*/
@Override
@PostMapping("/sysUser/listMapBy")
ResponseResult<List<Map<String, Object>>> listMapBy(@RequestBody MyQueryParam queryParam);
ResponseResult<MyPageData<Map<String, Object>>> listMapBy(@RequestBody MyQueryParam queryParam);
/**
* 获取远程主对象中符合查询条件的数据数量。
@@ -144,7 +145,7 @@ public interface SysUserClient extends BaseClient<SysUserDto, Long> {
@Component("UpmsSysUserClientFallbackFactory")
@Slf4j
class SysUserClientFallbackFactory
extends BaseFallbackFactory<SysUserDto, Long, SysUserClient> implements SysUserClient {
extends BaseFallbackFactory<SysUserDto, SysUserVo, Long, SysUserClient> implements SysUserClient {
@Override
public SysUserClient create(Throwable throwable) {

View File

@@ -10,8 +10,6 @@ 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。
@@ -75,10 +73,4 @@ public class SysMenuDto {
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 菜单与权限字关联对象列表。
*/
@ApiModelProperty(hidden = true)
private List<Map<String, Object>> sysMenuPermCodeList;
}

View File

@@ -10,8 +10,6 @@ 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。
@@ -70,10 +68,4 @@ public class SysPermCodeDto {
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 权限字与权限资源关联对象列表。
*/
@ApiModelProperty(hidden = true)
private List<Map<String, Object>> sysPermCodePermList;
}

View File

@@ -8,7 +8,6 @@ import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.Map;
/**
* 权限资源Dto。
@@ -66,10 +65,4 @@ public class SysPermDto {
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 模块Id的字典关联数据。
*/
@ApiModelProperty(hidden = true)
private Map<String, Object> moduleIdDictMap;
}

View File

@@ -10,7 +10,6 @@ import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
/**
* 权限资源模块Dto。
@@ -62,10 +61,4 @@ public class SysPermModuleDto {
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 权限资源对象列表。
*/
@ApiModelProperty(hidden = true)
private List<SysPermDto> sysPermList;
}

View File

@@ -7,8 +7,6 @@ import lombok.Data;
import javax.validation.constraints.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 角色Dto。
@@ -57,19 +55,4 @@ public class SysRoleDto {
*/
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**
* 角色与菜单关联对象列表。
*/
@ApiModelProperty(hidden = true)
private List<Map<String, Object>> sysRoleMenuList;
@ApiModelProperty(value = "创建时间开始查询时间")
private String createTimeStart;
@ApiModelProperty(value = "创建时间结束查询时间")
private String createTimeEnd;
@ApiModelProperty(value = "LIKE 模糊搜索字符串")
private String searchString;
}

View File

@@ -13,8 +13,6 @@ import lombok.Data;
import javax.validation.constraints.*;
import java.util.Date;
import java.util.Map;
import java.util.List;
/**
* SysUserDto对象。
@@ -111,22 +109,4 @@ public class SysUserDto {
*/
@ApiModelProperty(value = "createTime 范围过滤结束值(<=)")
private String createTimeEnd;
/**
* 多对多用户角色数据集合。
*/
@ApiModelProperty(hidden = true)
private List<Map<String, Object>> sysUserRoleList;
/**
* userType 常量字典关联数据。
*/
@ApiModelProperty(hidden = true)
private Map<String, Object> userTypeDictMap;
/**
* userStatus 常量字典关联数据。
*/
@ApiModelProperty(hidden = true)
private Map<String, Object> userStatusDictMap;
}

View File

@@ -0,0 +1,72 @@
package com.orange.demo.upmsinterface.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.*;
/**
* 菜单VO。
*
* @author Jerry
* @date 2020-08-08
*/
@ApiModel("菜单VO")
@Data
public class SysMenuVo {
/**
* 菜单Id。
*/
@ApiModelProperty(value = "菜单Id")
private Long menuId;
/**
* 父菜单Id目录菜单的父菜单为null
*/
@ApiModelProperty(value = "父菜单Id")
private Long parentId;
/**
* 菜单显示名称。
*/
@ApiModelProperty(value = "菜单显示名称")
private String menuName;
/**
* 菜单类型 (0: 目录 1: 菜单 2: 按钮 3: UI片段)。
*/
@ApiModelProperty(value = "菜单类型")
private Integer menuType;
/**
* 前端表单路由名称仅用于menu_type为1的菜单类型。
*/
@ApiModelProperty(value = "前端表单路由名称")
private String formRouterName;
/**
* 菜单显示顺序 (值越小,排序越靠前)。
*/
@ApiModelProperty(value = "菜单显示顺序")
private Integer showOrder;
/**
* 菜单图标。
*/
@ApiModelProperty(value = "菜单显示顺序")
private String icon;
/**
* 创建时间。
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 菜单与权限字关联对象列表。
*/
@ApiModelProperty(value = "菜单与权限字关联对象列表")
private List<Map<String, Object>> sysMenuPermCodeList;
}

View File

@@ -0,0 +1,66 @@
package com.orange.demo.upmsinterface.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.*;
/**
* 权限字VO。
*
* @author Jerry
* @date 2020-08-08
*/
@ApiModel("权限字VO")
@Data
public class SysPermCodeVo {
/**
* 权限字Id。
*/
@ApiModelProperty(value = "权限字Id")
private Long permCodeId;
/**
* 权限字标识(一般为有含义的英文字符串)。
*/
@ApiModelProperty(value = "权限字标识")
private String permCode;
/**
* 上级权限字Id。
*/
@ApiModelProperty(value = "上级权限字Id")
private Long parentId;
/**
* 权限字类型(0: 表单 1: UI片段 2: 操作)。
*/
@ApiModelProperty(value = "权限字类型")
private Integer permCodeType;
/**
* 显示名称。
*/
@ApiModelProperty(value = "显示名称")
private String showName;
/**
* 显示顺序(数值越小,越靠前)。
*/
@ApiModelProperty(value = "显示顺序")
private Integer showOrder;
/**
* 创建时间。
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 权限字与权限资源关联对象列表。
*/
@ApiModelProperty(value = "权限字与权限资源关联对象列表")
private List<Map<String, Object>> sysPermCodePermList;
}

View File

@@ -0,0 +1,60 @@
package com.orange.demo.upmsinterface.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.*;
/**
* 权限资源模块VO。
*
* @author Jerry
* @date 2020-08-08
*/
@ApiModel("权限资源模块VO")
@Data
public class SysPermModuleVo {
/**
* 权限模块Id。
*/
@ApiModelProperty(value = "权限模块Id")
private Long moduleId;
/**
* 权限模块名称。
*/
@ApiModelProperty(value = "权限模块名称")
private String moduleName;
/**
* 上级权限模块Id。
*/
@ApiModelProperty(value = "上级权限模块Id")
private Long parentId;
/**
* 权限模块类型(0: 普通模块 1: Controller模块)。
*/
@ApiModelProperty(value = "权限模块类型")
private Integer moduleType;
/**
* 权限模块在当前层级下的顺序,由小到大。
*/
@ApiModelProperty(value = "显示顺序")
private Integer showOrder;
/**
* 创建时间。
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 权限资源对象列表。
*/
@ApiModelProperty(value = "权限资源对象列表")
private List<SysPermVo> sysPermList;
}

View File

@@ -0,0 +1,66 @@
package com.orange.demo.upmsinterface.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.*;
/**
* 权限资源VO。
*
* @author Jerry
* @date 2020-08-08
*/
@ApiModel("权限资源VO")
@Data
public class SysPermVo {
/**
* 权限资源Id。
*/
@ApiModelProperty(value = "权限资源Id")
private Long permId;
/**
* 权限资源名称。
*/
@ApiModelProperty(value = "权限资源名称")
private String permName;
/**
* shiro格式的权限字如(upms:sysUser:add)。
*/
@ApiModelProperty(value = "权限字")
private String permCode;
/**
* 权限所在的权限模块Id。
*/
@ApiModelProperty(value = "权限所在的权限模块Id")
private Long moduleId;
/**
* 关联的URL。
*/
@ApiModelProperty(value = "关联的URL")
private String url;
/**
* 权限在当前模块下的顺序,由小到大。
*/
@ApiModelProperty(value = "显示顺序")
private Integer showOrder;
/**
* 创建时间。
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 模块Id的字典关联数据。
*/
@ApiModelProperty(value = "模块Id的字典关联数据")
private Map<String, Object> moduleIdDictMap;
}

View File

@@ -0,0 +1,60 @@
package com.orange.demo.upmsinterface.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.*;
/**
* 角色VO。
*
* @author Jerry
* @date 2020-08-08
*/
@ApiModel("角色VO")
@Data
public class SysRoleVo {
/**
* 角色Id。
*/
@ApiModelProperty(value = "角色Id")
private Long roleId;
/**
* 角色名称。
*/
@ApiModelProperty(value = "角色名称")
private String roleName;
/**
* 创建者Id。
*/
@ApiModelProperty(value = "创建者Id")
private Long createUserId;
/**
* 创建者显示名称。
*/
@ApiModelProperty(value = "创建者显示名称")
private String createUsername;
/**
* 创建时间。
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新时间。
*/
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**
* 角色与菜单关联对象列表。
*/
@ApiModelProperty(value = "角色与菜单关联对象列表")
private List<Map<String, Object>> sysRoleMenuList;
}

View File

@@ -0,0 +1,104 @@
package com.orange.demo.upmsinterface.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.Map;
import java.util.List;
/**
* SysUserVO对象。
*
* @author Jerry
* @date 2020-08-08
*/
@ApiModel("SysUserVO实体对象")
@Data
public class SysUserVo {
/**
* 用户Id。
*/
@ApiModelProperty(value = "用户Id")
private Long userId;
/**
* 登录用户名。
*/
@ApiModelProperty(value = "登录用户名")
private String loginName;
/**
* 用户密码。
*/
@ApiModelProperty(value = "用户密码")
private String password;
/**
* 用户显示名称。
*/
@ApiModelProperty(value = "用户显示名称")
private String showName;
/**
* 用户类型(0: 管理员 1: 系统管理用户 2: 系统业务用户)。
*/
@ApiModelProperty(value = "用户类型(0: 管理员 1: 系统管理用户 2: 系统业务用户)")
private Integer userType;
/**
* 用户头像的Url。
*/
@ApiModelProperty(value = "用户头像的Url")
private String headImageUrl;
/**
* 用户状态(0: 正常 1: 锁定)。
*/
@ApiModelProperty(value = "用户状态(0: 正常 1: 锁定)")
private Integer userStatus;
/**
* 创建用户Id。
*/
@ApiModelProperty(value = "创建用户Id")
private Long createUserId;
/**
* 创建用户名。
*/
@ApiModelProperty(value = "创建用户名")
private String createUsername;
/**
* 创建时间。
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新时间。
*/
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**
* 多对多用户角色数据集合。
*/
@ApiModelProperty(hidden = true)
private List<Map<String, Object>> sysUserRoleList;
/**
* userType 常量字典关联数据。
*/
@ApiModelProperty(hidden = true)
private Map<String, Object> userTypeDictMap;
/**
* userStatus 常量字典关联数据。
*/
@ApiModelProperty(hidden = true)
private Map<String, Object> userStatusDictMap;
}

View File

@@ -100,10 +100,42 @@ public class LoginController {
*/
@PostMapping("/doLogout")
public ResponseResult<Void> doLogout() {
cacheHelper.removeAllSessionCache();
TokenData tokenData = TokenData.takeFromRequest();
cacheHelper.removeAllSessionCache(tokenData.getSessionId());
return ResponseResult.success();
}
/**
* 在登录之后通过token再次获取登录信息。
* 用于在当前浏览器登录系统后在新tab页中可以免密登录。
*
* @return 应答结果对象其中包括JWT的Token数据以及菜单列表。
*/
@GetMapping("/getLoginInfo")
public ResponseResult<JSONObject> getLoginInfo() {
TokenData tokenData = TokenData.takeFromRequest();
// 这里解释一下为什么没有缓存menuList和permCodeList。
// 1. 该操作和权限验证不同,属于低频操作。
// 2. 第一次登录和再次获取登录信息之间,如果修改了用户的权限,那么本次获取的是最新权限。
// 3. 上一个问题无法避免,因为即便缓存也是有过期时间的,过期之后还是要从数据库获取的。
JSONObject jsonData = new JSONObject();
jsonData.put("showName", tokenData.getShowName());
jsonData.put("isAdmin", tokenData.getIsAdmin());
List<SysMenu> menuList;
if (tokenData.getIsAdmin()) {
menuList = sysMenuService.getAllMenuList();
} else {
menuList = sysMenuService.getMenuListByUserId(tokenData.getUserId());
List<String> permCodeList = sysPermCodeService.getPermCodeListByUserId(tokenData.getUserId());
jsonData.put("permCodeList", permCodeList);
// 将白名单url列表合并到当前用户的权限资源列表中便于网关一并处理。
Set<String> permSet = sysUserService.getSysPermSetByUserId(tokenData.getUserId());
permSet.addAll(sysPermWhitelistService.getAllListWithField(SysPermWhitelist::getPermUrl));
jsonData.put("permSet", permSet);
}
jsonData.put("menuList", menuList);
return ResponseResult.success(jsonData);
}
/**
* 用户修改自己的密码。
*

View File

@@ -10,8 +10,8 @@ import com.orange.demo.common.core.util.MyCommonUtil;
import com.orange.demo.common.core.annotation.MyRequestBody;
import com.orange.demo.common.core.validator.UpdateGroup;
import com.orange.demo.upmsinterface.dto.SysMenuDto;
import com.orange.demo.upmsinterface.vo.SysMenuVo;
import com.orange.demo.upmsservice.model.SysMenu;
import com.orange.demo.upmsservice.service.SysPermCodeService;
import com.orange.demo.upmsservice.service.SysMenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -33,8 +33,6 @@ public class SysMenuController {
@Autowired
private SysMenuService sysMenuService;
@Autowired
private SysPermCodeService sysPermCodeService;
/**
* 添加新菜单操作。
@@ -130,9 +128,9 @@ public class SysMenuController {
* @return 应答结果对象,包含全部菜单数据列表。
*/
@GetMapping("/list")
public ResponseResult<List<SysMenuDto>> list() {
public ResponseResult<List<SysMenuVo>> list() {
List<SysMenu> sysMenuList = sysMenuService.getAllListByOrder("menuType", "showOrder");
return ResponseResult.success(MyModelUtil.copyCollectionTo(sysMenuList, SysMenuDto.class));
return ResponseResult.success(MyModelUtil.copyCollectionTo(sysMenuList, SysMenuVo.class));
}
/**
@@ -142,7 +140,7 @@ public class SysMenuController {
* @return 应答结果对象,包含菜单详情。
*/
@GetMapping("/view")
public ResponseResult<SysMenuDto> view(@RequestParam Long menuId) {
public ResponseResult<SysMenuVo> view(@RequestParam Long menuId) {
if (MyCommonUtil.existBlankArgument(menuId)) {
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
}
@@ -150,8 +148,8 @@ public class SysMenuController {
if (sysMenu == null) {
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
}
SysMenuDto sysMenuDto = MyModelUtil.copyTo(sysMenu, SysMenuDto.class);
return ResponseResult.success(sysMenuDto);
SysMenuVo sysMenuVo = MyModelUtil.copyTo(sysMenu, SysMenuVo.class);
return ResponseResult.success(sysMenuVo);
}
/**

View File

@@ -10,6 +10,7 @@ import com.orange.demo.common.core.util.MyCommonUtil;
import com.orange.demo.common.core.annotation.MyRequestBody;
import com.orange.demo.common.core.validator.UpdateGroup;
import com.orange.demo.upmsinterface.dto.SysPermCodeDto;
import com.orange.demo.upmsinterface.vo.SysPermCodeVo;
import com.orange.demo.upmsservice.model.SysPermCode;
import com.orange.demo.upmsservice.service.SysPermCodeService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -133,10 +134,10 @@ public class SysPermCodeController {
* @return 应答结果对象,包含权限字列表。
*/
@PostMapping("/list")
public ResponseResult<List<SysPermCodeDto>> list() {
public ResponseResult<List<SysPermCodeVo>> list() {
List<SysPermCode> sysPermCodeList =
sysPermCodeService.getAllListByOrder("permCodeType", "showOrder");
return ResponseResult.success(MyModelUtil.copyCollectionTo(sysPermCodeList, SysPermCodeDto.class));
return ResponseResult.success(MyModelUtil.copyCollectionTo(sysPermCodeList, SysPermCodeVo.class));
}
/**
@@ -146,7 +147,7 @@ public class SysPermCodeController {
* @return 应答结果对象,包含权限字对象详情。
*/
@GetMapping("/view")
public ResponseResult<SysPermCodeDto> view(@RequestParam Long permCodeId) {
public ResponseResult<SysPermCodeVo> view(@RequestParam Long permCodeId) {
if (MyCommonUtil.existBlankArgument(permCodeId)) {
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
}
@@ -155,8 +156,8 @@ public class SysPermCodeController {
if (sysPermCode == null) {
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
}
SysPermCodeDto sysPermCodeDto = MyModelUtil.copyTo(sysPermCode, SysPermCodeDto.class);
return ResponseResult.success(sysPermCodeDto);
SysPermCodeVo sysPermCodeVo = MyModelUtil.copyTo(sysPermCode, SysPermCodeVo.class);
return ResponseResult.success(sysPermCodeVo);
}
/**

View File

@@ -14,8 +14,8 @@ import com.orange.demo.common.core.util.MyPageUtil;
import com.orange.demo.common.core.annotation.MyRequestBody;
import com.orange.demo.common.core.validator.UpdateGroup;
import com.orange.demo.upmsinterface.dto.SysPermDto;
import com.orange.demo.upmsinterface.vo.SysPermVo;
import com.orange.demo.upmsservice.model.SysPerm;
import com.orange.demo.upmsservice.model.SysPermModule;
import com.orange.demo.upmsservice.service.SysPermService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -83,10 +83,6 @@ public class SysPermController {
if (!result.isSuccess()) {
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, result.getErrorMessage());
}
if (result.getData() != null) {
SysPermModule permModule = (SysPermModule) result.getData().get("permModule");
sysPerm.setModuleId(permModule.getModuleId());
}
sysPermService.update(sysPerm, originalPerm);
return ResponseResult.success();
}
@@ -116,7 +112,7 @@ public class SysPermController {
* @return 应答结果对象,包含权限资源对象详情。
*/
@GetMapping("/view")
public ResponseResult<SysPermDto> view(@RequestParam Long permId) {
public ResponseResult<SysPermVo> view(@RequestParam Long permId) {
if (MyCommonUtil.existBlankArgument(permId)) {
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
}
@@ -124,8 +120,8 @@ public class SysPermController {
if (perm == null) {
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
}
SysPermDto permDto = MyModelUtil.copyTo(perm, SysPermDto.class);
return ResponseResult.success(permDto);
SysPermVo permVo = MyModelUtil.copyTo(perm, SysPermVo.class);
return ResponseResult.success(permVo);
}
/**
@@ -136,19 +132,19 @@ public class SysPermController {
* @return 应答结果对象,包含权限资源列表。
*/
@PostMapping("/list")
public ResponseResult<MyPageData<SysPermDto>> list(
public ResponseResult<MyPageData<SysPermVo>> list(
@MyRequestBody("sysPermFilter") SysPermDto sysPermDtoFiltter, @MyRequestBody MyPageParam pageParam) {
if (pageParam != null) {
PageMethod.startPage(pageParam.getPageNum(), pageParam.getPageSize());
}
SysPerm filter = MyModelUtil.copyTo(sysPermDtoFiltter, SysPerm.class);
List<SysPerm> permList = sysPermService.getPermListWithRelation(filter);
List<SysPermDto> permDtoList = MyModelUtil.copyCollectionTo(permList, SysPermDto.class);
List<SysPermVo> permVoList = MyModelUtil.copyCollectionTo(permList, SysPermVo.class);
long totalCount = 0L;
if (permList instanceof Page) {
totalCount = ((Page<SysPerm>) permList).getTotal();
}
return ResponseResult.success(MyPageUtil.makeResponseData(permDtoList, totalCount));
return ResponseResult.success(MyPageUtil.makeResponseData(permVoList, totalCount));
}
/**

View File

@@ -10,6 +10,7 @@ import com.orange.demo.common.core.util.MyCommonUtil;
import com.orange.demo.common.core.annotation.MyRequestBody;
import com.orange.demo.common.core.validator.UpdateGroup;
import com.orange.demo.upmsinterface.dto.SysPermModuleDto;
import com.orange.demo.upmsinterface.vo.SysPermModuleVo;
import com.orange.demo.upmsservice.model.SysPerm;
import com.orange.demo.upmsservice.model.SysPermModule;
import com.orange.demo.upmsservice.service.SysPermModuleService;
@@ -122,9 +123,9 @@ public class SysPermModuleController {
* @return 应答结果对象,包含权限资源模块列表。
*/
@GetMapping("/list")
public ResponseResult<List<SysPermModuleDto>> list() {
public ResponseResult<List<SysPermModuleVo>> list() {
List<SysPermModule> permModuleList = sysPermModuleService.getAllListByOrder("showOrder");
return ResponseResult.success(MyModelUtil.copyCollectionTo(permModuleList, SysPermModuleDto.class));
return ResponseResult.success(MyModelUtil.copyCollectionTo(permModuleList, SysPermModuleVo.class));
}
/**

View File

@@ -15,6 +15,8 @@ import com.orange.demo.common.core.util.MyPageUtil;
import com.orange.demo.common.core.annotation.MyRequestBody;
import com.orange.demo.upmsinterface.dto.SysRoleDto;
import com.orange.demo.upmsinterface.dto.SysUserDto;
import com.orange.demo.upmsinterface.vo.SysRoleVo;
import com.orange.demo.upmsinterface.vo.SysUserVo;
import com.orange.demo.upmsservice.model.SysRole;
import com.orange.demo.upmsservice.model.SysUser;
import com.orange.demo.upmsservice.model.SysUserRole;
@@ -137,7 +139,7 @@ public class SysRoleController {
* @return 应答结果对象,包含角色列表。
*/
@PostMapping("/list")
public ResponseResult<MyPageData<SysRoleDto>> list(
public ResponseResult<MyPageData<SysRoleVo>> list(
@MyRequestBody("sysRoleFilter") SysRoleDto sysRoleDtoFilter,
@MyRequestBody MyOrderParam orderParam,
@MyRequestBody MyPageParam pageParam) {
@@ -147,12 +149,12 @@ public class SysRoleController {
SysRole filter = MyModelUtil.copyTo(sysRoleDtoFilter, SysRole.class);
String orderBy = MyOrderParam.buildOrderBy(orderParam, SysRole.class);
List<SysRole> roleList = sysRoleService.getSysRoleList(filter, orderBy);
List<SysRoleDto> roleDtoList = MyModelUtil.copyCollectionTo(roleList, SysRoleDto.class);
List<SysRoleVo> roleVoList = MyModelUtil.copyCollectionTo(roleList, SysRoleVo.class);
long totalCount = 0L;
if (roleList instanceof Page) {
totalCount = ((Page<SysRole>) roleList).getTotal();
}
return ResponseResult.success(MyPageUtil.makeResponseData(roleDtoList, totalCount));
return ResponseResult.success(MyPageUtil.makeResponseData(roleVoList, totalCount));
}
/**
@@ -162,7 +164,7 @@ public class SysRoleController {
* @return 应答结果对象,包含角色详情对象。
*/
@GetMapping("/view")
public ResponseResult<SysRoleDto> view(@RequestParam Long roleId) {
public ResponseResult<SysRoleVo> view(@RequestParam Long roleId) {
if (MyCommonUtil.existBlankArgument(roleId)) {
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
}
@@ -170,8 +172,8 @@ public class SysRoleController {
if (sysRole == null) {
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
}
SysRoleDto sysRoleDto = MyModelUtil.copyTo(sysRole, SysRoleDto.class);
return ResponseResult.success(sysRoleDto);
SysRoleVo sysRoleVo = MyModelUtil.copyTo(sysRole, SysRoleVo.class);
return ResponseResult.success(sysRoleVo);
}
/**
@@ -185,7 +187,7 @@ public class SysRoleController {
* @return 应答结果对象,包含用户列表数据。
*/
@PostMapping("/listNotInUserRole")
public ResponseResult<MyPageData<SysUserDto>> listNotInUserRole(
public ResponseResult<MyPageData<SysUserVo>> listNotInUserRole(
@MyRequestBody Long roleId,
@MyRequestBody("sysUserFilter") SysUserDto sysUserDtoFilter,
@MyRequestBody MyOrderParam orderParam,
@@ -200,8 +202,8 @@ public class SysRoleController {
SysUser filter = MyModelUtil.copyTo(sysUserDtoFilter, SysUser.class);
String orderBy = MyOrderParam.buildOrderBy(orderParam, SysUser.class);
List<SysUser> userList = sysUserService.getNotInSysUserListByRoleId(roleId, filter, orderBy);
List<SysUserDto> userDtoList = MyModelUtil.copyCollectionTo(userList, SysUserDto.class);
return ResponseResult.success(MyPageUtil.makeResponseData(userDtoList));
List<SysUserVo> userVoList = MyModelUtil.copyCollectionTo(userList, SysUserVo.class);
return ResponseResult.success(MyPageUtil.makeResponseData(userVoList));
}
/**
@@ -214,7 +216,7 @@ public class SysRoleController {
* @return 应答结果对象,包含用户列表数据。
*/
@PostMapping("/listUserRole")
public ResponseResult<MyPageData<SysUserDto>> listUserRole(
public ResponseResult<MyPageData<SysUserVo>> listUserRole(
@MyRequestBody Long roleId,
@MyRequestBody("sysUserFilter") SysUserDto sysUserDtoFilter,
@MyRequestBody MyOrderParam orderParam,
@@ -229,8 +231,8 @@ public class SysRoleController {
SysUser filter = MyModelUtil.copyTo(sysUserDtoFilter, SysUser.class);
String orderBy = MyOrderParam.buildOrderBy(orderParam, SysUser.class);
List<SysUser> userList = sysUserService.getSysUserListByRoleId(roleId, filter, orderBy);
List<SysUserDto> userDtoList = MyModelUtil.copyCollectionTo(userList, SysUserDto.class);
return ResponseResult.success(MyPageUtil.makeResponseData(userDtoList));
List<SysUserVo> userVoList = MyModelUtil.copyCollectionTo(userList, SysUserVo.class);
return ResponseResult.success(MyPageUtil.makeResponseData(userVoList));
}
private ResponseResult<Void> doRoleUserVerify(Long roleId) {

View File

@@ -1,10 +1,10 @@
package com.orange.demo.upmsservice.controller;
import com.github.pagehelper.Page;
import com.github.pagehelper.page.PageMethod;
import com.orange.demo.upmsservice.model.*;
import com.orange.demo.upmsservice.service.*;
import com.orange.demo.upmsinterface.dto.*;
import com.orange.demo.upmsinterface.vo.*;
import com.orange.demo.common.core.object.*;
import com.orange.demo.common.core.util.*;
import com.orange.demo.common.core.constant.*;
@@ -34,7 +34,7 @@ import java.util.*;
@Slf4j
@RestController
@RequestMapping("/sysUser")
public class SysUserController extends BaseController<SysUser, SysUserDto, Long> {
public class SysUserController extends BaseController<SysUser, SysUserVo, Long> {
@Autowired
private SysUserService sysUserService;
@@ -42,7 +42,7 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
private ApplicationConfig appConfig;
@Override
protected BaseService<SysUser, SysUserDto, Long> service() {
protected BaseService<SysUser, Long> service() {
return sysUserService;
}
@@ -65,7 +65,7 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
if (errorMessage != null) {
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
}
SysUser sysUser = SysUser.INSTANCE.toModel(sysUserDto);
SysUser sysUser = MyModelUtil.copyTo(sysUserDto, SysUser.class);
CallResult result = sysUserService.verifyRelatedData(sysUser, null, roleIdListString);
if (!result.isSuccess()) {
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, result.getErrorMessage());
@@ -97,7 +97,7 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
if (originalUser == null) {
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
}
SysUser sysUser = SysUser.INSTANCE.toModel(sysUserDto);
SysUser sysUser = MyModelUtil.copyTo(sysUserDto, SysUser.class);
CallResult result = sysUserService.verifyRelatedData(sysUser, originalUser, roleIdListString);
if (!result.isSuccess()) {
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, result.getErrorMessage());
@@ -161,25 +161,18 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
* @return 应答结果对象,包含查询结果集。
*/
@PostMapping("/list")
public ResponseResult<MyPageData<SysUserDto>> list(
public ResponseResult<MyPageData<SysUserVo>> list(
@MyRequestBody("sysUserFilter") SysUserDto sysUserDtoFilter,
@MyRequestBody MyOrderParam orderParam,
@MyRequestBody MyPageParam pageParam) {
if (pageParam != null) {
PageMethod.startPage(pageParam.getPageNum(), pageParam.getPageSize());
}
SysUser sysUserFilter = SysUser.INSTANCE.toModel(sysUserDtoFilter);
SysUser sysUserFilter = MyModelUtil.copyTo(sysUserDtoFilter, SysUser.class);
String orderBy = MyOrderParam.buildOrderBy(orderParam, SysUser.class);
List<SysUser> sysUserList =
sysUserService.getSysUserListWithRelation(sysUserFilter, orderBy);
long totalCount = 0L;
if (sysUserList instanceof Page) {
totalCount = ((Page<SysUser>) sysUserList).getTotal();
}
// 分页连同对象数据转换copy工作下面的方法一并完成。
Tuple2<List<SysUserDto>, Long> responseData =
new Tuple2<>(SysUser.INSTANCE.fromModelList(sysUserList), totalCount);
return ResponseResult.success(MyPageUtil.makeResponseData(responseData));
return ResponseResult.success(MyPageUtil.makeResponseData(sysUserList, SysUser.INSTANCE));
}
/**
@@ -189,7 +182,7 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
* @return 应答结果对象,包含对象详情。
*/
@GetMapping("/view")
public ResponseResult<SysUserDto> view(@RequestParam Long userId) {
public ResponseResult<SysUserVo> view(@RequestParam Long userId) {
if (MyCommonUtil.existBlankArgument(userId)) {
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
}
@@ -199,8 +192,8 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
if (sysUser == null) {
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
}
SysUserDto sysUserDto = SysUser.INSTANCE.fromModel(sysUser);
return ResponseResult.success(sysUserDto);
SysUserVo sysUserVo = SysUser.INSTANCE.fromModel(sysUser);
return ResponseResult.success(sysUserVo);
}
/**
@@ -257,7 +250,7 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
*/
@ApiOperation(hidden = true, value = "listByIds")
@PostMapping("/listByIds")
public ResponseResult<List<SysUserDto>> listByIds(
public ResponseResult<List<SysUserVo>> listByIds(
@RequestParam Set<Long> userIds, @RequestParam Boolean withDict) {
return super.baseListByIds(userIds, withDict, SysUser.INSTANCE);
}
@@ -271,7 +264,7 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
*/
@ApiOperation(hidden = true, value = "getById")
@PostMapping("/getById")
public ResponseResult<SysUserDto> getById(
public ResponseResult<SysUserVo> getById(
@RequestParam Long userId, @RequestParam Boolean withDict) {
return super.baseGetById(userId, withDict, SysUser.INSTANCE);
}
@@ -309,30 +302,30 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
@ApiOperation(hidden = true, value = "deleteBy")
@PostMapping("/deleteBy")
public ResponseResult<Integer> deleteBy(@RequestBody SysUserDto filter) throws Exception {
return super.baseDeleteBy(filter, SysUser.INSTANCE);
return super.baseDeleteBy(MyModelUtil.copyTo(filter, SysUser.class));
}
/**
* 复杂的查询调用,包括(in list)过滤,对象条件过滤,分和排序等。主要用于微服务间远程过程调用。
* 复杂的查询调用,包括(in list)过滤,对象条件过滤,分和排序等。主要用于微服务间远程过程调用。
*
* @param queryParam 查询参数。
* @return 应答结果对象,包含符合查询过滤条件的对象结果
* @return 分页数据集合对象。如MyQueryParam参数的分页属性为空则不会执行分页操作只是基于MyPageData对象返回数据结果。
*/
@ApiOperation(hidden = true, value = "listBy")
@PostMapping("/listBy")
public ResponseResult<List<SysUserDto>> listBy(@RequestBody MyQueryParam queryParam) {
public ResponseResult<MyPageData<SysUserVo>> listBy(@RequestBody MyQueryParam queryParam) {
return super.baseListBy(queryParam, SysUser.INSTANCE);
}
/**
* 复杂的查询调用,包括(in list)过滤,对象条件过滤,分和排序等。主要用于微服务间远程过程调用。
* 复杂的查询调用,包括(in list)过滤,对象条件过滤,分和排序等。主要用于微服务间远程过程调用。
*
* @param queryParam 查询参数。
* @return 应答结果对象,包含符合查询过滤条件的对象结果
* @return 分页数据集合对象。如MyQueryParam参数的分页属性为空则不会执行分页操作只是基于MyPageData对象返回数据结果。
*/
@ApiOperation(hidden = true, value = "listMapBy")
@PostMapping("/listMapBy")
public ResponseResult<List<Map<String, Object>>> listMapBy(@RequestBody MyQueryParam queryParam) {
public ResponseResult<MyPageData<Map<String, Object>>> listMapBy(@RequestBody MyQueryParam queryParam) {
return super.baseListMapBy(queryParam, SysUser.INSTANCE);
}
@@ -344,7 +337,7 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
*/
@ApiOperation(hidden = true, value = "getBy")
@PostMapping("/getBy")
public ResponseResult<SysUserDto> getBy(@RequestBody MyQueryParam queryParam) {
public ResponseResult<SysUserVo> getBy(@RequestBody MyQueryParam queryParam) {
return super.baseGetBy(queryParam, SysUser.INSTANCE);
}

View File

@@ -23,15 +23,6 @@ public interface SysPermMapper extends BaseDaoMapper<SysPerm> {
*/
List<SysPerm> getPermListByUserId(@Param("userId") Long userId);
/**
* 根据关联权限字主键Id获取权限资源数据列表。
*
* @param permCodeId 关联权限字主键Id。
* @param orderBy 排序字符串ORDER BY从句的参数。
* @return 从表数据列表。
*/
List<SysPerm> getPermListByPermCodeId(@Param("permCodeId") Long permCodeId, @Param("orderBy") String orderBy);
/**
* 查询权限资源地址的用户列表。同时返回详细的分配路径。
*

View File

@@ -3,8 +3,6 @@ package com.orange.demo.upmsservice.dao;
import com.orange.demo.common.core.base.dao.BaseDaoMapper;
import com.orange.demo.upmsservice.model.SysUserRole;
import java.util.List;
/**
* 用户与角色关联关系数据访问操作接口。
*
@@ -12,11 +10,4 @@ import java.util.List;
* @date 2020-08-08
*/
public interface SysUserRoleMapper extends BaseDaoMapper<SysUserRole> {
/**
* 批量插入用户角色信息,如果用户角色已经存在,则不会重复插入。
*
* @param userRoleList 待插入的角色用户列表。
*/
void addUserRoleList(List<SysUserRole> userRoleList);
}

View File

@@ -17,18 +17,14 @@
SELECT
DISTINCT m.*
FROM
zz_sys_user u,
zz_sys_user_role ur,
zz_sys_role_menu rm,
zz_sys_menu m
<where>
AND u.user_id = #{userId}
AND u.deleted_flag = ${@com.orange.demo.common.core.constant.GlobalDeletedFlag@NORMAL}
AND u.user_id = ur.user_id
AND ur.user_id = #{userId}
AND ur.role_id = rm.role_id
AND rm.menu_id = m.menu_id
AND m.menu_type &lt;= ${@com.orange.demo.upmsinterface.constant.SysMenuType@TYPE_MENU}
AND m.deleted_flag = ${@com.orange.demo.common.core.constant.GlobalDeletedFlag@NORMAL}
</where>
ORDER BY m.show_order
</select>

View File

@@ -16,19 +16,15 @@
SELECT
DISTINCT pc.perm_code
FROM
zz_sys_user u,
zz_sys_user_role ur,
zz_sys_role_menu rm,
zz_sys_menu_perm_code mpc,
zz_sys_perm_code pc
<where>
AND u.user_id = #{userId}
AND u.deleted_flag = ${@com.orange.demo.common.core.constant.GlobalDeletedFlag@NORMAL}
AND u.user_id = ur.user_id
AND ur.user_id = #{userId}
AND ur.role_id = rm.role_id
AND rm.menu_id = mpc.menu_id
AND mpc.perm_code_id = pc.perm_code_id
AND pc.deleted_flag = ${@com.orange.demo.common.core.constant.GlobalDeletedFlag@NORMAL}
</where>
</select>

View File

@@ -15,40 +15,20 @@
SELECT
p.*
FROM
zz_sys_user u,
zz_sys_user_role ur,
zz_sys_role_menu rm,
zz_sys_menu_perm_code mpc,
zz_sys_perm_code_perm pcp,
zz_sys_perm p
<where>
AND u.user_id = #{userId}
AND u.deleted_flag = ${@com.orange.demo.common.core.constant.GlobalDeletedFlag@NORMAL}
AND u.user_id = ur.user_id
AND ur.user_id = #{userId}
AND ur.role_id = rm.role_id
AND rm.menu_id = mpc.menu_id
AND mpc.perm_code_id = pcp.perm_code_id
AND pcp.perm_id = p.perm_id
AND p.deleted_flag = ${@com.orange.demo.common.core.constant.GlobalDeletedFlag@NORMAL}
</where>
</select>
<select id="getPermListByPermCodeId" resultMap="BaseResultMap">
SELECT
p.*
FROM
zz_sys_perm_code_perm pcp,
zz_sys_perm p
<where>
AND pcp.perm_code_id = #{permCodeId}
AND pcp.perm_id = p.perm_id
AND p.deleted_flag = ${@com.orange.demo.common.core.constant.GlobalDeletedFlag@NORMAL}
</where>
<if test="orderBy != null and orderBy != ''">
ORDER BY ${orderBy}
</if>
</select>
<!-- 以下查询仅用于权限分配的问题定位,由于关联表较多,可能会给系统运行带来性能影响 -->
<select id="getSysUserListWithDetail" resultType="map">
SELECT

View File

@@ -11,16 +11,20 @@
<result column="deleted_flag" jdbcType="INTEGER" property="deletedFlag"/>
</resultMap>
<sql id="filterRef">
<if test="sysRoleFilter != null">
<if test="sysRoleFilter.roleName != null and sysRoleFilter.roleName != ''">
<bind name= "safeRoleName" value= "'%' + sysRoleFilter.roleName + '%'"/>
AND role_name LIKE #{safeRoleName}
</if>
</if>
AND deleted_flag = ${@com.orange.demo.common.core.constant.GlobalDeletedFlag@NORMAL}
</sql>
<select id="getSysRoleList" resultMap="BaseResultMap" parameterType="com.orange.demo.upmsservice.model.SysRole">
SELECT * FROM zz_sys_role
<where>
<if test="sysRoleFilter != null">
<if test="sysRoleFilter.roleName != null and sysRoleFilter.roleName != ''">
<bind name= "safeRoleName" value= "'%' + sysRoleFilter.roleName + '%'"/>
AND role_name LIKE #{safeRoleName}
</if>
</if>
AND deleted_flag = ${@com.orange.demo.common.core.constant.GlobalDeletedFlag@NORMAL}
<include refid="filterRef"/>
</where>
<if test="orderBy != null and orderBy != ''">
ORDER BY ${orderBy}

View File

@@ -15,8 +15,14 @@
<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
</resultMap>
<!-- 如果有逻辑删除字段过滤,请写到这里 -->
<sql id="filterRef">
<!-- 这里必须加上全包名否则当filterRef被其他Mapper.xml包含引用的时候就会调用Mapper.xml中的该SQL片段 -->
<include refid="com.orange.demo.upmsservice.dao.SysUserMapper.inputFilterRef"/>
AND zz_sys_user.deleted_flag = ${@com.orange.demo.common.core.constant.GlobalDeletedFlag@NORMAL}
</sql>
<!-- 这里仅包含调用接口输入的主表过滤条件 -->
<sql id="inputFilterRef">
<if test="sysUserFilter != null">
<if test="sysUserFilter.loginName != null and sysUserFilter.loginName != ''">
<bind name = "safeLoginName" value = "'%' + sysUserFilter.loginName + '%'" />

View File

@@ -5,11 +5,4 @@
<id column="user_id" jdbcType="BIGINT" property="userId"/>
<id column="role_id" jdbcType="BIGINT" property="roleId"/>
</resultMap>
<insert id="addUserRoleList">
REPLACE INTO zz_sys_user_role(user_id, role_id) VALUES
<foreach collection="list" index="index" item="item" separator=",">
(#{item.userId}, #{item.roleId})
</foreach>
</insert>
</mapper>

View File

@@ -6,7 +6,7 @@ import com.orange.demo.common.core.annotation.RelationManyToMany;
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
import com.orange.demo.common.core.validator.ConstDictRef;
import com.orange.demo.upmsinterface.constant.SysMenuType;
import com.orange.demo.upmsinterface.dto.SysMenuDto;
import com.orange.demo.upmsinterface.vo.SysMenuVo;
import lombok.Data;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
@@ -96,25 +96,25 @@ public class SysMenu {
private List<SysMenuPermCode> sysMenuPermCodeList;
@Mapper
public interface SysMenuModelMapper extends BaseModelMapper<SysMenuDto, SysMenu> {
public interface SysMenuModelMapper extends BaseModelMapper<SysMenuVo, SysMenu> {
/**
* 转换Dto对象到实体对象。
* 转换VO对象到实体对象。
*
* @param sysMenuDto 域对象。
* @param sysMenuVo 域对象。
* @return 实体对象。
*/
@Mapping(target = "sysMenuPermCodeList", expression = "java(mapToBean(sysMenuDto.getSysMenuPermCodeList(), com.orange.demo.upmsservice.model.SysMenuPermCode.class))")
@Mapping(target = "sysMenuPermCodeList", expression = "java(mapToBean(sysMenuVo.getSysMenuPermCodeList(), com.orange.demo.upmsservice.model.SysMenuPermCode.class))")
@Override
SysMenu toModel(SysMenuDto sysMenuDto);
SysMenu toModel(SysMenuVo sysMenuVo);
/**
* 转换实体对象到Dto对象。
* 转换实体对象到VO对象。
*
* @param sysMenu 实体对象。
* @return 域对象。
*/
@Mapping(target = "sysMenuPermCodeList", expression = "java(beanToMap(sysMenu.getSysMenuPermCodeList(), false))")
@Override
SysMenuDto fromModel(SysMenu sysMenu);
SysMenuVo fromModel(SysMenu sysMenu);
}
public static final SysMenuModelMapper INSTANCE = Mappers.getMapper(SysMenu.SysMenuModelMapper.class);
}

View File

@@ -6,7 +6,7 @@ import com.orange.demo.common.core.annotation.RelationManyToMany;
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
import com.orange.demo.common.core.validator.ConstDictRef;
import com.orange.demo.upmsinterface.constant.SysPermCodeType;
import com.orange.demo.upmsinterface.dto.SysPermCodeDto;
import com.orange.demo.upmsinterface.vo.SysPermCodeVo;
import lombok.Data;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
@@ -92,25 +92,25 @@ public class SysPermCode {
private List<SysPermCodePerm> sysPermCodePermList;
@Mapper
public interface SysPermCodeModelMapper extends BaseModelMapper<SysPermCodeDto, SysPermCode> {
public interface SysPermCodeModelMapper extends BaseModelMapper<SysPermCodeVo, SysPermCode> {
/**
* 转换Dto对象到实体对象。
* 转换VO对象到实体对象。
*
* @param sysPermCodeDto 域对象。
* @param sysPermCodeVo 域对象。
* @return 实体对象。
*/
@Mapping(target = "sysPermCodePermList", expression = "java(mapToBean(sysPermCodeDto.getSysPermCodePermList(), com.orange.demo.upmsservice.model.SysPermCodePerm.class))")
@Mapping(target = "sysPermCodePermList", expression = "java(mapToBean(sysPermCodeVo.getSysPermCodePermList(), com.orange.demo.upmsservice.model.SysPermCodePerm.class))")
@Override
SysPermCode toModel(SysPermCodeDto sysPermCodeDto);
SysPermCode toModel(SysPermCodeVo sysPermCodeVo);
/**
* 转换实体对象到Dto对象。
* 转换实体对象到VO对象。
*
* @param sysPermCode 实体对象。
* @return 域对象。
*/
@Mapping(target = "sysPermCodePermList", expression = "java(beanToMap(sysPermCode.getSysPermCodePermList(), false))")
@Override
SysPermCodeDto fromModel(SysPermCode sysPermCode);
SysPermCodeVo fromModel(SysPermCode sysPermCode);
}
public static final SysPermCodeModelMapper INSTANCE = Mappers.getMapper(SysPermCode.SysPermCodeModelMapper.class);
}

View File

@@ -4,7 +4,7 @@ import com.alibaba.fastjson.annotation.JSONField;
import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import com.orange.demo.common.core.annotation.RelationManyToMany;
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
import com.orange.demo.upmsinterface.dto.SysRoleDto;
import com.orange.demo.upmsinterface.vo.SysRoleVo;
import lombok.Data;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
@@ -79,32 +79,26 @@ public class SysRole {
@Transient
private List<SysRoleMenu> sysRoleMenuList;
@Transient
private String createTimeStart;
@Transient
private String createTimeEnd;
@Mapper
public interface SysRoleModelMapper extends BaseModelMapper<SysRoleDto, SysRole> {
public interface SysRoleModelMapper extends BaseModelMapper<SysRoleVo, SysRole> {
/**
* 转换Dto对象到实体对象。
* 转换VO对象到实体对象。
*
* @param sysRoleDto 域对象。
* @param sysRoleVo 域对象。
* @return 实体对象。
*/
@Mapping(target = "sysRoleMenuList", expression = "java(mapToBean(sysRoleDto.getSysRoleMenuList(), com.orange.demo.upmsservice.model.SysRoleMenu.class))")
@Mapping(target = "sysRoleMenuList", expression = "java(mapToBean(sysRoleVo.getSysRoleMenuList(), com.orange.demo.upmsservice.model.SysRoleMenu.class))")
@Override
SysRole toModel(SysRoleDto sysRoleDto);
SysRole toModel(SysRoleVo sysRoleVo);
/**
* 转换实体对象到Dto对象。
* 转换实体对象到VO对象。
*
* @param sysRole 实体对象。
* @return 域对象。
*/
@Mapping(target = "sysRoleMenuList", expression = "java(beanToMap(sysRole.getSysRoleMenuList(), false))")
@Override
SysRoleDto fromModel(SysRole sysRole);
SysRoleVo fromModel(SysRole sysRole);
}
public static final SysRoleModelMapper INSTANCE = Mappers.getMapper(SysRole.SysRoleModelMapper.class);
}

View File

@@ -8,7 +8,7 @@ import com.orange.demo.common.core.annotation.RelationManyToMany;
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import com.orange.demo.common.core.validator.ConstDictRef;
import com.orange.demo.upmsinterface.dto.SysUserDto;
import com.orange.demo.upmsinterface.vo.SysUserVo;
import lombok.Data;
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;
@@ -146,25 +146,25 @@ public class SysUser {
private Map<String, Object> userStatusDictMap;
@Mapper
public interface SysUserModelMapper extends BaseModelMapper<SysUserDto, SysUser> {
public interface SysUserModelMapper extends BaseModelMapper<SysUserVo, SysUser> {
/**
* 转换Dto对象到实体对象。
* 转换Vo对象到实体对象。
*
* @param sysUserDto 域对象。
* @param sysUserVo 域对象。
* @return 实体对象。
*/
@Mapping(target = "sysUserRoleList", expression = "java(mapToBean(sysUserDto.getSysUserRoleList(), com.orange.demo.upmsservice.model.SysUserRole.class))")
@Mapping(target = "sysUserRoleList", expression = "java(mapToBean(sysUserVo.getSysUserRoleList(), com.orange.demo.upmsservice.model.SysUserRole.class))")
@Override
SysUser toModel(SysUserDto sysUserDto);
SysUser toModel(SysUserVo sysUserVo);
/**
* 转换实体对象到Dto对象。
* 转换实体对象到VO对象。
*
* @param sysUser 实体对象。
* @return 域对象。
*/
@Mapping(target = "sysUserRoleList", expression = "java(beanToMap(sysUser.getSysUserRoleList(), false))")
@Override
SysUserDto fromModel(SysUser sysUser);
SysUserVo fromModel(SysUser sysUser);
}
public static final SysUserModelMapper INSTANCE = Mappers.getMapper(SysUserModelMapper.class);
}

View File

@@ -7,7 +7,6 @@ import com.orange.demo.common.core.base.dao.BaseDaoMapper;
import com.orange.demo.common.core.constant.GlobalDeletedFlag;
import com.orange.demo.common.core.object.CallResult;
import com.orange.demo.upmsinterface.constant.SysMenuType;
import com.orange.demo.upmsinterface.dto.SysMenuDto;
import com.orange.demo.upmsservice.dao.SysMenuMapper;
import com.orange.demo.upmsservice.dao.SysMenuPermCodeMapper;
import com.orange.demo.upmsservice.dao.SysRoleMenuMapper;
@@ -30,7 +29,7 @@ import java.util.stream.Collectors;
* @date 2020-08-08
*/
@Service
public class SysMenuService extends BaseService<SysMenu, SysMenuDto, Long> {
public class SysMenuService extends BaseService<SysMenu, Long> {
@Autowired
private SysMenuMapper sysMenuMapper;
@@ -179,20 +178,19 @@ public class SysMenuService extends BaseService<SysMenu, SysMenuDto, Long> {
* @return 验证结果。
*/
public CallResult verifyRelatedData(SysMenu sysMenu, SysMenu originalSysMenu, String permCodeIdListString) {
JSONObject jsonObject = null;
if (this.needToVerify(sysMenu, originalSysMenu, SysMenu::getParentId)) {
// menu、ui fragment和button类型的menu不能没有parentId
if (sysMenu.getParentId() == null) {
if (sysMenu.getMenuType() != SysMenuType.TYPE_DIRECTORY) {
return CallResult.error("数据验证失败,当前类型菜单项的上级菜单不能为空!");
}
} else {
String errorMessage = checkErrorOfNonDirectoryMenu(sysMenu);
if (errorMessage != null) {
return CallResult.error(errorMessage);
}
// menu、ui fragment和button类型的menu不能没有parentId
if (sysMenu.getParentId() == null) {
if (sysMenu.getMenuType() != SysMenuType.TYPE_DIRECTORY) {
return CallResult.error("数据验证失败,当前类型菜单项的上级菜单不能为空!");
}
}
if (this.needToVerify(sysMenu, originalSysMenu, SysMenu::getParentId)) {
String errorMessage = checkErrorOfNonDirectoryMenu(sysMenu);
if (errorMessage != null) {
return CallResult.error(errorMessage);
}
}
JSONObject jsonObject = null;
if (StringUtils.isNotBlank(permCodeIdListString)) {
Set<Long> permCodeIdSet = Arrays.stream(
permCodeIdListString.split(",")).map(Long::valueOf).collect(Collectors.toSet());

View File

@@ -6,7 +6,6 @@ import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
import com.orange.demo.common.core.base.dao.BaseDaoMapper;
import com.orange.demo.common.core.constant.GlobalDeletedFlag;
import com.orange.demo.common.core.object.CallResult;
import com.orange.demo.upmsinterface.dto.SysPermCodeDto;
import com.orange.demo.upmsservice.dao.SysMenuPermCodeMapper;
import com.orange.demo.upmsservice.dao.SysPermCodeMapper;
import com.orange.demo.upmsservice.dao.SysPermCodePermMapper;
@@ -28,7 +27,7 @@ import java.util.stream.Collectors;
* @date 2020-08-08
*/
@Service
public class SysPermCodeService extends BaseService<SysPermCode, SysPermCodeDto, Long> {
public class SysPermCodeService extends BaseService<SysPermCode, Long> {
@Autowired
private SysPermCodeMapper sysPermCodeMapper;

View File

@@ -4,7 +4,6 @@ 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;
import com.orange.demo.common.core.constant.GlobalDeletedFlag;
import com.orange.demo.upmsinterface.dto.SysPermModuleDto;
import com.orange.demo.upmsservice.dao.SysPermModuleMapper;
import com.orange.demo.upmsservice.model.SysPerm;
import com.orange.demo.upmsservice.model.SysPermModule;
@@ -22,7 +21,7 @@ import java.util.List;
* @date 2020-08-08
*/
@Service
public class SysPermModuleService extends BaseService<SysPermModule, SysPermModuleDto, Long> {
public class SysPermModuleService extends BaseService<SysPermModule, Long> {
@Autowired
private SysPermModuleMapper sysPermModuleMapper;

View File

@@ -1,14 +1,12 @@
package com.orange.demo.upmsservice.service;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
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;
import com.orange.demo.common.core.object.MyRelationParam;
import com.orange.demo.common.core.constant.GlobalDeletedFlag;
import com.orange.demo.common.core.object.CallResult;
import com.orange.demo.upmsinterface.dto.SysPermDto;
import com.orange.demo.upmsservice.dao.SysPermCodePermMapper;
import com.orange.demo.upmsservice.dao.SysPermMapper;
import com.orange.demo.upmsservice.model.SysPerm;
@@ -30,7 +28,7 @@ import java.util.Map;
* @date 2020-08-08
*/
@Service
public class SysPermService extends BaseService<SysPerm, SysPermDto, Long> {
public class SysPermService extends BaseService<SysPerm, Long> {
@Autowired
private SysPermMapper sysPermMapper;
@@ -123,17 +121,6 @@ public class SysPermService extends BaseService<SysPerm, SysPermDto, Long> {
return permList;
}
/**
* 获取与指定权限字关联的权限资源列表。
*
* @param permCodeId 关联的权限字主键Id。
* @param orderBy 排序参数。
* @return 与指定权限字Id关联的权限资源列表。
*/
public List<SysPerm> getPermListByPermCodeId(Long permCodeId, String orderBy) {
return sysPermMapper.getPermListByPermCodeId(permCodeId, orderBy);
}
/**
* 获取与指定用户关联的权限资源列表。
*
@@ -152,16 +139,13 @@ public class SysPermService extends BaseService<SysPerm, SysPermDto, Long> {
* @return 验证结果。
*/
public CallResult verifyRelatedData(SysPerm sysPerm, SysPerm originalSysPerm) {
JSONObject jsonObject = null;
if (this.needToVerify(sysPerm, originalSysPerm, SysPerm::getModuleId)) {
SysPermModule permModule = sysPermModuleService.getById(sysPerm.getModuleId());
if (permModule == null) {
return CallResult.error("数据验证失败关联的权限模块Id并不存在请刷新后重试");
}
jsonObject = new JSONObject();
jsonObject.put("permModule", permModule);
}
return CallResult.ok(jsonObject);
return CallResult.ok();
}
/**

View File

@@ -14,7 +14,7 @@ import org.springframework.stereotype.Service;
* @date 2020-08-08
*/
@Service
public class SysPermWhitelistService extends BaseService<SysPermWhitelist, SysPermWhitelist, String> {
public class SysPermWhitelistService extends BaseService<SysPermWhitelist, String> {
@Autowired
private SysPermWhitelistMapper sysPermWhitelistMapper;

View File

@@ -7,7 +7,6 @@ import com.orange.demo.common.core.base.dao.BaseDaoMapper;
import com.orange.demo.common.core.constant.GlobalDeletedFlag;
import com.orange.demo.common.core.object.TokenData;
import com.orange.demo.common.core.object.CallResult;
import com.orange.demo.upmsinterface.dto.SysRoleDto;
import com.orange.demo.upmsservice.dao.SysRoleMapper;
import com.orange.demo.upmsservice.dao.SysRoleMenuMapper;
import com.orange.demo.upmsservice.dao.SysUserRoleMapper;
@@ -15,7 +14,6 @@ import com.orange.demo.upmsservice.model.SysRole;
import com.orange.demo.upmsservice.model.SysRoleMenu;
import com.orange.demo.upmsservice.model.SysUserRole;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -30,7 +28,7 @@ import java.util.stream.Collectors;
* @date 2020-08-08
*/
@Service
public class SysRoleService extends BaseService<SysRole, SysRoleDto, Long> {
public class SysRoleService extends BaseService<SysRole, Long> {
@Autowired
private SysRoleMapper sysRoleMapper;
@@ -94,11 +92,11 @@ public class SysRoleService extends BaseService<SysRole, SysRoleDto, Long> {
*/
@Transactional(rollbackFor = Exception.class)
public boolean update(SysRole role, SysRole originalRole, Set<Long> menuIdSet) {
SysRole updateRole = new SysRole();
BeanUtils.copyProperties(role, updateRole, "createUserId", "createUsername", "createTime");
updateRole.setUpdateTime(new Date());
updateRole.setDeletedFlag(GlobalDeletedFlag.NORMAL);
if (sysRoleMapper.updateByPrimaryKeySelective(updateRole) != 1) {
role.setCreateUserId(originalRole.getCreateUserId());
role.setCreateTime(originalRole.getCreateTime());
role.setUpdateTime(new Date());
role.setDeletedFlag(GlobalDeletedFlag.NORMAL);
if (sysRoleMapper.updateByPrimaryKey(role) != 1) {
return false;
}
SysRoleMenu deletedRoleMenu = new SysRoleMenu();
@@ -158,7 +156,7 @@ public class SysRoleService extends BaseService<SysRole, SysRoleDto, Long> {
*/
@Transactional(rollbackFor = Exception.class)
public void addUserRoleList(List<SysUserRole> userRoleList) {
sysUserRoleMapper.addUserRoleList(userRoleList);
sysUserRoleMapper.insertList(userRoleList);
}
/**

View File

@@ -3,7 +3,6 @@ package com.orange.demo.upmsservice.service;
import com.alibaba.fastjson.JSONObject;
import com.orange.demo.upmsservice.dao.*;
import com.orange.demo.upmsservice.model.*;
import com.orange.demo.upmsinterface.dto.*;
import com.orange.demo.common.core.util.*;
import com.orange.demo.common.core.object.*;
import com.orange.demo.common.core.constant.GlobalDeletedFlag;
@@ -29,7 +28,7 @@ import java.util.stream.Collectors;
* @date 2020-08-08
*/
@Service
public class SysUserService extends BaseService<SysUser, SysUserDto, Long> {
public class SysUserService extends BaseService<SysUser, Long> {
@Autowired
private SysUserMapper sysUserMapper;
@@ -146,8 +145,9 @@ public class SysUserService extends BaseService<SysUser, SysUserDto, Long> {
@Transactional(rollbackFor = Exception.class)
public boolean changePassword(Long userId, String newPass) {
Example e = new Example(SysUser.class);
e.createCriteria().andEqualTo(super.idFieldName, userId);
e.createCriteria().andEqualTo(super.deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
e.createCriteria()
.andEqualTo(super.idFieldName, userId)
.andEqualTo(super.deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
SysUser updatedUser = new SysUser();
updatedUser.setPassword(passwordEncoder.encode(newPass));
return sysUserMapper.updateByExampleSelective(updatedUser, e) == 1;