Commit 5cec29f5 by 刘鑫

Merge remote-tracking branch 'origin/develop' into develop

# Conflicts:
#	project-interface/src/main/java/com/dituhui/pea/common/Result.java
2 parents 69934c40 98cb5ba5
......@@ -16,6 +16,8 @@
package com.dituhui.pea.common;
import com.dituhui.pea.enums.StatusCodeEnum;
/**
* 响应返回实体类型
*
......@@ -39,69 +41,77 @@ public class Result<T> {
*/
private T result;
public static <T> Result<T> success(T result) {
return new Result<>(ResultEnum.SUCCESS.getCode(), ResultEnum.SUCCESS.getMessage(), result);
}
public static <T> Result<T> success(String message, T result) {
return new Result<>(ResultEnum.SUCCESS.getCode(), message, result);
}
public static Result<?> failed() {
return new Result<>(ResultEnum.COMMON_FAILED.getCode(),
ResultEnum.COMMON_FAILED.getMessage(), null);
}
public static Result<?> failed(String message) {
return new Result<>(ResultEnum.COMMON_FAILED.getCode(), message, null);
}
public static <T> Result<T> failure(String message) {
return new Result<>(ResultEnum.COMMON_FAILED.getCode(), message, null);
}
public static Result<?> failed(IResult errorResult) {
return new Result<>(errorResult.getCode(), errorResult.getMessage(), null);
}
public Result() {
}
public Result(String code, String message, T result) {
this.code = code;
this.message = message;
this.result = result;
}
public String getCode() {
return this.code;
}
public void setCode(String code) {
this.code = code;
}
public String getMessage() {
return this.message;
}
public void setMessage(String message) {
this.message = message;
}
public T getResult() {
return this.result;
}
public void setResult(T result) {
this.result = result;
}
public static <T> Result<T> instance(String code, String message, T result) {
Result<T> r = new Result<>();
r.setCode(code);
r.setMessage(message);
r.setResult(result);
return r;
}
public static <T> Result<T> success(T result) {
return new Result<>(ResultEnum.SUCCESS.getCode(), ResultEnum.SUCCESS.getMessage(), result);
}
public static <T> Result<T> success(String message, T result) {
return new Result<>(ResultEnum.SUCCESS.getCode(), message, result);
}
public static Result<?> failed() {
return new Result<>(ResultEnum.COMMON_FAILED.getCode(),
ResultEnum.COMMON_FAILED.getMessage(), null);
}
public static Result<?> failed(String message) {
return new Result<>(ResultEnum.COMMON_FAILED.getCode(), message, null);
}
public static <T> Result<T> failure(String message) {
return new Result<>(ResultEnum.COMMON_FAILED.getCode(), message, null);
}
public static Result<?> failed(IResult errorResult) {
return new Result<>(errorResult.getCode(), errorResult.getMessage(), null);
}
public static <T> Result<T> failed(T result) {
return new Result<>(ResultEnum.COMMON_FAILED.getCode(), ResultEnum.COMMON_FAILED.getMessage(), result);
}
public static <T> Result<T> failed(StatusCodeEnum resultEnum, T result) {
return new Result<>(resultEnum.getCode(), resultEnum.getDesc(), result);
}
public Result() {
}
public Result(String code, String message, T result) {
this.code = code;
this.message = message;
this.result = result;
}
public String getCode() {
return this.code;
}
public void setCode(String code) {
this.code = code;
}
public String getMessage() {
return this.message;
}
public void setMessage(String message) {
this.message = message;
}
public T getResult() {
return this.result;
}
public void setResult(T result) {
this.result = result;
}
public static <T> Result<T> instance(String code, String message, T result) {
Result<T> r = new Result<>();
r.setCode(code);
r.setMessage(message);
r.setResult(result);
return r;
}
}
......@@ -6,6 +6,7 @@ import com.dituhui.pea.pojo.role.RoleResourceInfo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
......@@ -13,7 +14,7 @@ import java.util.List;
* 角色信息
*/
@Data
public class RoleInfo {
public class RoleInfo implements Serializable {
/**
* 主键
......@@ -32,9 +33,14 @@ public class RoleInfo {
private String groupId;
/**
* 备注
*/
private String notes;
/**
* 角色自定义条件
*/
@NotBlank(message = "角色条件不能为空!")
// @NotBlank(message = "角色条件不能为空!")
private String extra;
/**
......@@ -50,4 +56,12 @@ public class RoleInfo {
private Date updatedTime;
private List<RoleResourceInfo> resourceInfos;
/**
* 创建人
*/
private String createdBy;
/**
* 更新人
*/
private String updatedBy;
}
......@@ -27,7 +27,7 @@ public interface IRole {
* @return
*/
@RequestMapping(value = "/pea-user/role/add", method = RequestMethod.POST)
WebResult<RoleInfo> addRole(@RequestBody RoleInfo roleInfo);
Result<RoleInfo> addRole(@RequestBody RoleInfo roleInfo);
/**
......@@ -37,7 +37,7 @@ public interface IRole {
* @return
*/
@RequestMapping(value = "/pea-user/role/update", method = RequestMethod.POST)
WebResult<RoleInfo> updateRole(@RequestBody RoleInfo roleInfo);
Result<RoleInfo> updateRole(@RequestBody RoleInfo roleInfo);
/**
* 删除角色
......@@ -46,7 +46,7 @@ public interface IRole {
* @return
*/
@RequestMapping(value = "/pea-user/role/delete", method = RequestMethod.POST)
WebResult<Boolean> deleteRole(@RequestParam("id") String roleId);
Result<Boolean> deleteRole(@RequestBody RoleInfo roleInfo);
/**
* 添加用户角色
......
package com.dituhui.pea.util;
import java.util.UUID;
/**
* uuid生成工具
* @author guoping
*
*/
public class UUIDUtil {
public static String getUuid() {
UUID uuid = UUID.randomUUID();
String sud = uuid.toString();
sud = sud.replaceAll("-", "");
return sud;
}
public static String getUid(){
return UUID.randomUUID().toString().replace("-", "").toLowerCase();
}
public static void main(String[] args) {
System.out.println(getUuid());
}
}
......@@ -15,6 +15,7 @@ import com.dituhui.pea.user.service.RoleService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
......@@ -33,25 +34,25 @@ public class RoleController implements IRole {
RoleService roleService;
@Override
public WebResult<RoleInfo> addRole(@Validated RoleInfo roleInfo) {
public Result<RoleInfo> addRole(@Validated RoleInfo roleInfo) {
roleInfo = roleService.addRole(roleInfo);
return WebResult.ok(roleInfo);
return Result.success(roleInfo);
}
@Override
public WebResult<RoleInfo> updateRole(@Validated RoleInfo roleInfo) {
public Result<RoleInfo> updateRole(@Validated RoleInfo roleInfo) {
roleInfo = roleService.updateRole(roleInfo);
return WebResult.ok(roleInfo);
return Result.success(roleInfo);
}
@Override
public WebResult<Boolean> deleteRole(String roleId) {
if (StringUtils.isBlank(roleId)) {
return WebResult.failed(StatusCodeEnum.COMMON_PARAM_EMPTY);
public Result<Boolean> deleteRole(RoleInfo roleInfo) {
if (StringUtils.isBlank(roleInfo.getId())) {
return Result.failed(StatusCodeEnum.COMMON_PARAM_EMPTY, false);
}
roleService.deleteRole(roleId);
return WebResult.ok();
roleService.deleteRole(roleInfo.getId());
return Result.success(true);
}
@Override
......
......@@ -10,26 +10,26 @@ import java.util.List;
/**
* 资源表 用户对某种具体权限或者功能的描述(Resource)表数据库访问层
*
*/
public interface ResourceDao extends JpaRepository<ResourceEntity, String>,
JpaSpecificationExecutor<ResourceEntity>, CrudRepository<ResourceEntity, String> {
/**
* 根据IDs查询多个资源
*
* @param ids 资源ID集合
* @return
*/
List<ResourceEntity> findByIdIn(List<String> ids);
/**
* 查询子资源
*
*
* @param parentIds
* @return
*/
List<ResourceEntity> findByParentId(String parentId);
List<ResourceEntity> findByTypeNot(Integer type);
}
......@@ -69,4 +69,9 @@ public class RoleEntity implements Serializable {
@LastModifiedDate
private Date updatedTime;
/**
* 备注
*/
private String notes;
}
......@@ -15,7 +15,9 @@ import com.dituhui.pea.pojo.role.RoleResourceInfo;
import com.dituhui.pea.user.commom.RedisService;
import com.dituhui.pea.user.dao.*;
import com.dituhui.pea.user.entity.*;
import com.dituhui.pea.util.UUIDUtil;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -27,6 +29,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
......@@ -36,6 +39,7 @@ import java.util.stream.Collectors;
* @author zl
*/
@Service
@Slf4j
public class RoleService {
@Autowired
......@@ -62,9 +66,10 @@ public class RoleService {
private static final int LIVE_TIME_MILLIS = 360000;
@Transactional(rollbackFor = Exception.class)
@Transactional
public RoleInfo addRole(RoleInfo roleInfo) {
RoleEntity roleEntity = BeanUtil.copyProperties(roleInfo, RoleEntity.class);
RoleEntity roleEntity = assembleRole(roleInfo);
log.info("新增角色入参:" + JSONObject.toJSONString(roleEntity));
roleEntity = roleDao.save(roleEntity);
List<RoleResourceInfo> resourceInfos = roleInfo.getResourceInfos();
if (CollectionUtils.isNotEmpty(resourceInfos)) {
......@@ -73,20 +78,22 @@ public class RoleService {
roleResourceDao.save(roleResourceEntity);
}
}
roleInfo = BeanUtil.copyProperties(roleEntity, RoleInfo.class);
// roleInfo = BeanUtil.copyProperties(roleEntity, RoleInfo.class);
roleInfo.setId(roleEntity.getId());
log.info("新增角色信息:" + JSONObject.toJSONString(roleEntity));
return roleInfo;
}
@Transactional(rollbackFor = Exception.class)
public RoleInfo updateRole(RoleInfo roleInfo) {
RoleEntity roleEntity = BeanUtil.copyProperties(roleInfo, RoleEntity.class);
RoleEntity roleEntity = assembleRole(roleInfo);
roleEntity = roleDao.save(roleEntity);
List<RoleResourceInfo> resourceInfos = roleInfo.getResourceInfos();
if (CollectionUtils.isNotEmpty(resourceInfos)) {
// 先清除
roleResourceDao.deleteByRoleId(roleEntity.getId());
for (RoleResourceInfo resourceInfo : resourceInfos) {
// 先清除
roleResourceDao.deleteByRoleId(roleEntity.getId());
RoleResourceEntity roleResourceEntity = assembleRoleResource(roleEntity.getId(), resourceInfo.getResourceId());
roleResourceDao.save(roleResourceEntity);
}
......@@ -238,6 +245,16 @@ public class RoleService {
}
private RoleEntity assembleRole(RoleInfo roleInfo) {
RoleEntity roleEntity = new RoleEntity();
roleEntity.setName(roleInfo.getName());
roleEntity.setCreatedBy(roleInfo.getCreatedBy());
roleEntity.setCreatedTime(new Date());
roleEntity.setNotes(roleInfo.getNotes());
return roleEntity;
}
public PageResult<RoleInfo> listRole(PageRequest pageRequest) {
Sort sort = Sort.by(Sort.Order.desc("createdTime"));
Pageable pageable = org.springframework.data.domain.PageRequest.of(pageRequest.getPage() - 1, pageRequest.getSize(), sort);
......@@ -279,13 +296,17 @@ public class RoleService {
if (StringUtils.isNotBlank(redisValue)) {
return JSONObject.parseObject(redisValue, List.class);
}
List<ResourceEntity> all = resourceDao.findAll();
List<ResourceEntity> all = resourceDao.findByTypeNot(3);
List<ResourceInfo> collect = all.stream().filter(resourceEntity -> StringUtils.isBlank(resourceEntity.getParentId())).map(entity -> BeanUtil.copyProperties(entity, ResourceInfo.class)).collect(Collectors.toList());
for (ResourceInfo entity : collect) {
List<ResourceInfo> twoResource = all.stream().filter(resourceEntity -> entity.getParentId().equals(entity.getId())).map(e -> BeanUtil.copyProperties(e, ResourceInfo.class)).collect(Collectors.toList());
List<ResourceInfo> twoResource = all.stream().filter(resourceEntity -> StringUtils.isNotBlank(resourceEntity.getParentId())
&& resourceEntity.getParentId().equals(entity.getId()))
.map(e -> BeanUtil.copyProperties(e, ResourceInfo.class)).collect(Collectors.toList());
for (ResourceInfo twoEntity : twoResource) {
List<ResourceInfo> threeResource = all.stream().filter(resourceEntity -> entity.getParentId().equals(twoEntity.getId())).map(e -> BeanUtil.copyProperties(e, ResourceInfo.class)).collect(Collectors.toList());
List<ResourceInfo> threeResource = all.stream().filter(resourceEntity -> StringUtils.isNotBlank(resourceEntity.getParentId())
&& resourceEntity.getParentId().equals(twoEntity.getId()))
.map(e -> BeanUtil.copyProperties(e, ResourceInfo.class)).collect(Collectors.toList());
twoEntity.setChildren(threeResource);
}
entity.setChildren(twoResource);
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!