Browse Source

fix bug

master
刘力 3 years ago
parent
commit
d3eb53d107
  1. 2
      common/src/main/java/com/canvas/web/enums/ResponseEnum.java
  2. 9
      common/src/main/java/com/canvas/web/utils/SecurityUtils.java
  3. 2
      system/src/main/java/com/canvas/web/modules/security/controller/AuthorizationController.java
  4. 3
      system/src/main/java/com/canvas/web/modules/security/service/OnlineUserService.java
  5. 5
      system/src/main/java/com/canvas/web/modules/security/service/dto/OnlineUserDto.java
  6. 15
      system/src/main/java/com/canvas/web/modules/system/controller/RoleController.java
  7. 19
      system/src/main/java/com/canvas/web/modules/system/controller/UserController.java
  8. 8
      system/src/main/java/com/canvas/web/modules/system/domain/Org.java
  9. 14
      system/src/main/java/com/canvas/web/modules/system/domain/Role.java
  10. 3
      system/src/main/java/com/canvas/web/modules/system/domain/User.java
  11. 5
      system/src/main/java/com/canvas/web/modules/system/repository/RoleRepository.java
  12. 4
      system/src/main/java/com/canvas/web/modules/system/repository/UserRepository.java
  13. 7
      system/src/main/java/com/canvas/web/modules/system/service/RoleService.java
  14. 2
      system/src/main/java/com/canvas/web/modules/system/service/UserService.java
  15. 4
      system/src/main/java/com/canvas/web/modules/system/service/dto/RoleDto.java
  16. 4
      system/src/main/java/com/canvas/web/modules/system/service/dto/RoleQueryCriteria.java
  17. 2
      system/src/main/java/com/canvas/web/modules/system/service/dto/UserDto.java
  18. 3
      system/src/main/java/com/canvas/web/modules/system/service/dto/UserQueryCriteria.java
  19. 11
      system/src/main/java/com/canvas/web/modules/system/service/impl/OrgServiceImpl.java
  20. 40
      system/src/main/java/com/canvas/web/modules/system/service/impl/RoleServiceImpl.java
  21. 18
      system/src/main/java/com/canvas/web/modules/system/service/impl/UserServiceImpl.java

2
common/src/main/java/com/canvas/web/enums/ResponseEnum.java

@ -66,6 +66,8 @@ public enum ResponseEnum {
REPEAT_SUBMIT(20000, "不允许重复提交,请稍后再试"), REPEAT_SUBMIT(20000, "不允许重复提交,请稍后再试"),
ADD_FAIL(20001, "新增失败"), ADD_FAIL(20001, "新增失败"),
ADD_SUCCESS(20003, "新增成功"), ADD_SUCCESS(20003, "新增成功"),
USER_ADD_ERROR_EXIST_NAME(20023,"用户名已经存在"),
USER_ADD_ERROR_EXIST_PHONE(20024,"手机号已经存在"),
DELETE_FAIL(20004, "删除失败"), DELETE_FAIL(20004, "删除失败"),
DELETE_SUCCESS(20005, "删除成功"), DELETE_SUCCESS(20005, "删除成功"),
UPDATE_FAIL(20006, "修改失败"), UPDATE_FAIL(20006, "修改失败"),

9
common/src/main/java/com/canvas/web/utils/SecurityUtils.java

@ -60,6 +60,15 @@ public class SecurityUtils {
return new JSONObject(new JSONObject(userDetails).get("user")).getJSONObject("org").get("id",Long.class); return new JSONObject(new JSONObject(userDetails).get("user")).getJSONObject("org").get("id",Long.class);
} }
/**
* 获取是否管理员状态
* @return
*/
public static Boolean getCurrentIsAdmin(){
UserDetails userDetails=getCurrentUser();
return new JSONObject(new JSONObject(userDetails).get("user")).get("isAdmin",Boolean.class);
}
/** /**
* 获取当前用户的数据权限 * 获取当前用户的数据权限

2
system/src/main/java/com/canvas/web/modules/security/controller/AuthorizationController.java

@ -46,7 +46,7 @@ import java.util.concurrent.TimeUnit;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/auth")
@RequestMapping("/api/auth")
@RequiredArgsConstructor @RequiredArgsConstructor
@Api(tags = "系统:系统授权接口") @Api(tags = "系统:系统授权接口")
public class AuthorizationController { public class AuthorizationController {

3
system/src/main/java/com/canvas/web/modules/security/service/OnlineUserService.java

@ -33,9 +33,10 @@ public class OnlineUserService {
String ip = StringUtils.getIp(request); String ip = StringUtils.getIp(request);
String browser = StringUtils.getBrowser(request); String browser = StringUtils.getBrowser(request);
String address = StringUtils.getCityInfo(ip); String address = StringUtils.getCityInfo(ip);
Boolean isAdmin=SecurityUtils.getCurrentIsAdmin();
OnlineUserDto onlineUserDto = null; OnlineUserDto onlineUserDto = null;
try { try {
onlineUserDto = new OnlineUserDto(jwtUserDto.getUsername(), jwtUserDto.getUser().getPhone(),jwtUserDto.getUser().getNickName(), org, browser , ip, address, EncryptUtils.desEncrypt(token), new Date());
onlineUserDto = new OnlineUserDto(jwtUserDto.getUsername(), jwtUserDto.getUser().getPhone(),jwtUserDto.getUser().getNickName(), org, browser , ip, address, EncryptUtils.desEncrypt(token), new Date(),isAdmin);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(),e); log.error(e.getMessage(),e);
} }

5
system/src/main/java/com/canvas/web/modules/security/service/dto/OnlineUserDto.java

@ -56,4 +56,9 @@ public class OnlineUserDto {
* 登录时间 * 登录时间
*/ */
private Date loginTime; private Date loginTime;
/**
* 是否超级管理员
*/
private Boolean isAdmin;
} }

15
system/src/main/java/com/canvas/web/modules/system/controller/RoleController.java

@ -39,10 +39,10 @@ public class RoleController {
private final RoleMapper roleMapper; private final RoleMapper roleMapper;
@ApiOperation("新增角色") @ApiOperation("新增角色")
@AnonymousPostMapping("/create")
@PostMapping("/create")
public Response<Object> create(@Validated @RequestBody RoleDto roleDto) { public Response<Object> create(@Validated @RequestBody RoleDto roleDto) {
if (roleDto.getId() != null) { if (roleDto.getId() != null) {
throw new BaseException("A new cannot already have an ID", ResponseEnum.ROLE_ADD_ERROR_EXIST_ID.getMessage());
throw new BaseException("新增角色id非空");
} }
//TODO:权限测试 //TODO:权限测试
// getLevels(roleDto.getLevel()); // getLevels(roleDto.getLevel());
@ -53,7 +53,7 @@ public class RoleController {
@ApiOperation("查询角色") @ApiOperation("查询角色")
@AnonymousGetMapping("/list")
@GetMapping("/list")
public Response<Object> queryAllRole(RoleQueryCriteria criteria, Pageable pageable) { public Response<Object> queryAllRole(RoleQueryCriteria criteria, Pageable pageable) {
//获取当前登录组织机构id //获取当前登录组织机构id
Long id = SecurityUtils.getCurrentOrgId(); Long id = SecurityUtils.getCurrentOrgId();
@ -76,6 +76,14 @@ public class RoleController {
return Response.success("修改成功"); return Response.success("修改成功");
} }
@ApiOperation("新增用户-下拉角色")
@GetMapping("dropdown/list")
public Response<Object> dropdownList() {
//获取当前登录组织机构id
Long id = SecurityUtils.getCurrentOrgId();
return Response.success(roleService.findByOrgRole(id));
}
@ApiOperation("查询机构所有权限") @ApiOperation("查询机构所有权限")
@GetMapping("menus") @GetMapping("menus")
public Response<Object> queryRoleMenus() { public Response<Object> queryRoleMenus() {
@ -84,7 +92,6 @@ public class RoleController {
} }
//TODO:暂时不需要判断用户等级 //TODO:暂时不需要判断用户等级
private int getLevels(Integer level) { private int getLevels(Integer level) {
List<Integer> levels = roleService.findByUsersId(SecurityUtils.getCurrentUserId()).stream().map(RoleSmallDto::getLevel).collect(Collectors.toList()); List<Integer> levels = roleService.findByUsersId(SecurityUtils.getCurrentUserId()).stream().map(RoleSmallDto::getLevel).collect(Collectors.toList());

19
system/src/main/java/com/canvas/web/modules/system/controller/UserController.java

@ -32,6 +32,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Api(tags = "用户管理") @Api(tags = "用户管理")
@ -47,8 +48,8 @@ public class UserController {
private final UserMapper userMapper; private final UserMapper userMapper;
@ApiOperation("新增用户") @ApiOperation("新增用户")
@PostMapping
public Response<Object> create(@Validated @RequestBody User resources) {
@PostMapping("create")
public Response<Object> create(@Validated @RequestBody UserDto resources) {
// 默认密码 123456 // 默认密码 123456
resources.setPassword(passwordEncoder.encode("123456")); resources.setPassword(passwordEncoder.encode("123456"));
userService.create(resources); userService.create(resources);
@ -61,10 +62,13 @@ public class UserController {
public Response<Object> query(UserQueryCriteria criteria, Pageable pageable) { public Response<Object> query(UserQueryCriteria criteria, Pageable pageable) {
//获取当前登录组织机构id //获取当前登录组织机构id
Long id = SecurityUtils.getCurrentOrgId(); Long id = SecurityUtils.getCurrentOrgId();
//如果当前用户机构不是超级管理员 //如果当前用户机构不是超级管理员
if (id != 1L) { if (id != 1L) {
//加入到机构查询条件 //加入到机构查询条件
criteria.getOrgIds().add(id); criteria.getOrgIds().add(id);
//本机构激活状态的用户
//criteria.setIsAdmin(true);
//如果查询条件不为空就把查询条件带入查询 //如果查询条件不为空就把查询条件带入查询
if (!ObjectUtils.isEmpty(criteria.getBlurry())) { if (!ObjectUtils.isEmpty(criteria.getBlurry())) {
return Response.success(userService.queryAll(criteria, pageable)); return Response.success(userService.queryAll(criteria, pageable));
@ -72,12 +76,14 @@ public class UserController {
//返回本机构用户列表 //返回本机构用户列表
return Response.success(userService.queryAll(criteria, pageable)); return Response.success(userService.queryAll(criteria, pageable));
} }
//激活状态查询
//criteria.setIsAdmin(true);
//返回所有列表 //返回所有列表
return Response.success(userService.queryAll(criteria, pageable)); return Response.success(userService.queryAll(criteria, pageable));
} }
@ApiOperation("修改用户") @ApiOperation("修改用户")
@PostMapping("edit")
@PutMapping("edit")
public Response<Object> updateUser(@Validated(User.Update.class) @RequestBody UserDto userDto) throws Exception { public Response<Object> updateUser(@Validated(User.Update.class) @RequestBody UserDto userDto) throws Exception {
User user = userMapper.toEntity(userDto); User user = userMapper.toEntity(userDto);
checkLevel(user); checkLevel(user);
@ -85,6 +91,13 @@ public class UserController {
return Response.success("修改成功"); return Response.success("修改成功");
} }
@ApiOperation("删除用户")
@DeleteMapping("delete")
public Response<Object> deleteUser(@RequestBody Set<Long> ids) {
userService.delete(ids);
return Response.success(ResponseEnum.DELETE_SUCCESS);
}
//如果当前用户角色级别低于创建用户的角色级别抛出权限不足 //如果当前用户角色级别低于创建用户的角色级别抛出权限不足
private void checkLevel(User user) { private void checkLevel(User user) {

8
system/src/main/java/com/canvas/web/modules/system/domain/Org.java

@ -26,10 +26,10 @@ public class Org extends BaseEntity implements Serializable {
@ApiModelProperty(value = "ID", hidden = true) @ApiModelProperty(value = "ID", hidden = true)
private Long id; private Long id;
@JsonIgnore
@ManyToMany(mappedBy = "org")
@ApiModelProperty(value = "角色")
private Set<Role> roles;
// @JsonIgnore
// @ManyToMany(mappedBy = "org")
// @ApiModelProperty(value = "角色")
// private Set<Role> roles;
@ManyToMany @ManyToMany

14
system/src/main/java/com/canvas/web/modules/system/domain/Role.java

@ -41,12 +41,12 @@ public class Role extends BaseEntity implements Serializable {
private Set<Menu> menus; private Set<Menu> menus;
@ManyToMany
@JoinTable(name = "sys_roles_org",
joinColumns = {@JoinColumn(name = "role_id",referencedColumnName = "id")},
inverseJoinColumns = {@JoinColumn(name = "org_id",referencedColumnName = "id")})
@ApiModelProperty(value = "部门", hidden = true)
private Set<Org> org;
// @ManyToMany
// @JoinTable(name = "sys_roles_org",
// joinColumns = {@JoinColumn(name = "role_id",referencedColumnName = "id")},
// inverseJoinColumns = {@JoinColumn(name = "org_id",referencedColumnName = "id")})
// @ApiModelProperty(value = "部门", hidden = true)
// private Set<Org> org;
@NotBlank @NotBlank
@ApiModelProperty(value = "名称", hidden = true) @ApiModelProperty(value = "名称", hidden = true)
@ -57,7 +57,7 @@ public class Role extends BaseEntity implements Serializable {
@Column(name = "level") @Column(name = "level")
@ApiModelProperty(value = "级别,数值越小,级别越大") @ApiModelProperty(value = "级别,数值越小,级别越大")
private Integer level = 3;
private Integer level;
@ApiModelProperty(value = "描述") @ApiModelProperty(value = "描述")
private String description; private String description;

3
system/src/main/java/com/canvas/web/modules/system/domain/User.java

@ -39,7 +39,7 @@ public class User extends BaseEntity implements Serializable {
@OneToOne @OneToOne
@JoinColumn(name = "id")
@JoinColumn(name = "org_id")
@ApiModelProperty(value = "机构") @ApiModelProperty(value = "机构")
private Org org; private Org org;
@ -53,7 +53,6 @@ public class User extends BaseEntity implements Serializable {
private String nickName; private String nickName;
@Email @Email
@NotBlank
@ApiModelProperty(value = "邮箱") @ApiModelProperty(value = "邮箱")
private String email; private String email;

5
system/src/main/java/com/canvas/web/modules/system/repository/RoleRepository.java

@ -36,6 +36,11 @@ public interface RoleRepository extends JpaRepository<Role, Long>, JpaSpecificat
List<Role> findInMenuId(List<Long> menuIds); List<Role> findInMenuId(List<Long> menuIds);
//根据机构id查询
@Query(value = "SELECT * FROM sys_roles_org,sys_role WHERE org_id=?1",nativeQuery = true)
List<Role> findByOrgId(Long id);

4
system/src/main/java/com/canvas/web/modules/system/repository/UserRepository.java

@ -67,6 +67,10 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat
"u.user_id = ur.user_id AND ur.role_id = rm.role_id AND rm.menu_id = ?1 group by u.user_id", nativeQuery = true) "u.user_id = ur.user_id AND ur.role_id = rm.role_id AND rm.menu_id = ?1 group by u.user_id", nativeQuery = true)
List<User> findByMenuId(Long id); List<User> findByMenuId(Long id);
//TODO:根据角色获取机构id @Query(value = "",nativeQuery = true)
// List<User> findByRoleOrgId(Long orgId);
/** /**
* 根据Id删除 * 根据Id删除
* @param ids / * @param ids /

7
system/src/main/java/com/canvas/web/modules/system/service/RoleService.java

@ -19,10 +19,17 @@ public interface RoleService {
List<RoleSmallDto> findByUsersId(Long id); List<RoleSmallDto> findByUsersId(Long id);
//根据id查询角色名称
RoleDto findById(long id);
//根据角色查询角色级别 //根据角色查询角色级别
Integer findByRoles(Set<Role> roles); Integer findByRoles(Set<Role> roles);
//根据机构查询角色
List<RoleSmallDto> findByOrgRole(Long id);
//创建角色 //创建角色
void create(Role resources); void create(Role resources);

2
system/src/main/java/com/canvas/web/modules/system/service/UserService.java

@ -27,7 +27,7 @@ public interface UserService {
* *
* @param resources / * @param resources /
*/ */
void create(User resources);
void create(UserDto resources);
/** /**
* 编辑用户 * 编辑用户

4
system/src/main/java/com/canvas/web/modules/system/service/dto/RoleDto.java

@ -2,6 +2,7 @@ package com.canvas.web.modules.system.service.dto;
import com.alibaba.fastjson.annotation.JSONField; import com.alibaba.fastjson.annotation.JSONField;
import com.canvas.web.base.BaseDTO; import com.canvas.web.base.BaseDTO;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@ -17,9 +18,10 @@ public class RoleDto extends BaseDTO implements Serializable {
private Long id; private Long id;
//@JsonIgnore
private Set<MenuDto> menus; private Set<MenuDto> menus;
private Set<OrgDto> orgDtos;
// private Set<OrgDto> orgDtos;
@NotBlank(message = "角色名称不能为空") @NotBlank(message = "角色名称不能为空")
private String name; private String name;

4
system/src/main/java/com/canvas/web/modules/system/service/dto/RoleQueryCriteria.java

@ -1,6 +1,8 @@
package com.canvas.web.modules.system.service.dto; package com.canvas.web.modules.system.service.dto;
import com.alibaba.fastjson.annotation.JSONField;
import com.canvas.web.annotation.Query; import com.canvas.web.annotation.Query;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import java.sql.Timestamp; import java.sql.Timestamp;
@ -17,6 +19,8 @@ public class RoleQueryCriteria {
@Query(type = Query.Type.BETWEEN) @Query(type = Query.Type.BETWEEN)
private List<Timestamp> createTime; private List<Timestamp> createTime;
@JSONField(name = "OrgIds")
@JsonProperty("org_ids")
@Query(propName = "id", type = Query.Type.IN, joinName = "org") @Query(propName = "id", type = Query.Type.IN, joinName = "org")
private Set<Long> OrgIds = new HashSet<>(); private Set<Long> OrgIds = new HashSet<>();
} }

2
system/src/main/java/com/canvas/web/modules/system/service/dto/UserDto.java

@ -39,7 +39,7 @@ public class UserDto extends BaseDTO implements Serializable {
private Boolean enabled; private Boolean enabled;
@JsonIgnore
//@JsonIgnore
private Boolean isAdmin = false; private Boolean isAdmin = false;
private Date pwdResetTime; private Date pwdResetTime;

3
system/src/main/java/com/canvas/web/modules/system/service/dto/UserQueryCriteria.java

@ -25,6 +25,9 @@ public class UserQueryCriteria implements Serializable {
@Query(propName = "id", type = Query.Type.IN, joinName = "org") @Query(propName = "id", type = Query.Type.IN, joinName = "org")
private Set<Long> OrgIds = new HashSet<>(); private Set<Long> OrgIds = new HashSet<>();
@Query
private Boolean isAdmin;
private Long orgId; private Long orgId;
@Query(type = Query.Type.BETWEEN) @Query(type = Query.Type.BETWEEN)

11
system/src/main/java/com/canvas/web/modules/system/service/impl/OrgServiceImpl.java

@ -1,6 +1,7 @@
package com.canvas.web.modules.system.service.impl; package com.canvas.web.modules.system.service.impl;
import com.canvas.web.modules.system.domain.Org; import com.canvas.web.modules.system.domain.Org;
import com.canvas.web.modules.system.domain.User;
import com.canvas.web.modules.system.repository.OrgRepository; import com.canvas.web.modules.system.repository.OrgRepository;
import com.canvas.web.modules.system.repository.RoleRepository; import com.canvas.web.modules.system.repository.RoleRepository;
import com.canvas.web.modules.system.repository.UserRepository; import com.canvas.web.modules.system.repository.UserRepository;
@ -18,6 +19,7 @@ import org.springframework.cache.annotation.CacheConfig;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@ -43,8 +45,11 @@ public class OrgServiceImpl implements OrgService {
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public void create(OrgDto orgDto) { public void create(OrgDto orgDto) {
orgRepository.save(orgMapper.toEntity(orgDto));
//清理缓存
delCaches(orgDto.getId());
} }
@Override @Override
@ -78,4 +83,8 @@ public class OrgServiceImpl implements OrgService {
Page<Org> page =orgRepository.findAll((root, query, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder), pageable); Page<Org> page =orgRepository.findAll((root, query, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder), pageable);
return PageUtil.toPage(page.map(orgMapper::toDto)); return PageUtil.toPage(page.map(orgMapper::toDto));
} }
public void delCaches(Long id){
}
} }

40
system/src/main/java/com/canvas/web/modules/system/service/impl/RoleServiceImpl.java

@ -16,20 +16,21 @@ import com.canvas.web.modules.system.service.dto.RoleSmallDto;
import com.canvas.web.modules.system.service.dto.UserDto; import com.canvas.web.modules.system.service.dto.UserDto;
import com.canvas.web.modules.system.service.mapstruct.RoleMapper; import com.canvas.web.modules.system.service.mapstruct.RoleMapper;
import com.canvas.web.modules.system.service.mapstruct.RoleSmallMapper; import com.canvas.web.modules.system.service.mapstruct.RoleSmallMapper;
import com.canvas.web.modules.utils.PageSort;
import com.canvas.web.utils.*; import com.canvas.web.utils.*;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
@ -65,9 +66,31 @@ public class RoleServiceImpl implements RoleService {
return roleSmallMapper.toDto(new ArrayList<>(roleRepository.findByUserId(id))); return roleSmallMapper.toDto(new ArrayList<>(roleRepository.findByUserId(id)));
} }
@Override
@Cacheable(key = "'id:' + #p0")
@Transactional(rollbackFor = Exception.class)
public RoleDto findById(long id) {
Role role = roleRepository.findById(id).orElseGet(Role::new);
ValidationUtil.isNull(role.getId(), "Role", "id", id);
return roleMapper.toDto(role);
}
@Override @Override
public Integer findByRoles(Set<Role> roles) { public Integer findByRoles(Set<Role> roles) {
return null;
if (roles.size() == 0) {
return Integer.MAX_VALUE;
}
Set<RoleDto> roleDtos = new HashSet<>();
for (Role role : roles) {
roleDtos.add(findById(role.getId()));
}
return Collections.min(roleDtos.stream().map(RoleDto::getLevel).collect(Collectors.toList()));
}
@Override
public List<RoleSmallDto> findByOrgRole(Long id) {
return roleSmallMapper.toDto(roleRepository.findByOrgId(id));
} }
@Override @Override
@ -107,8 +130,9 @@ public class RoleServiceImpl implements RoleService {
@Override @Override
public Object queryAll(RoleQueryCriteria criteria, Pageable pageable) { public Object queryAll(RoleQueryCriteria criteria, Pageable pageable) {
Page<Role> page = roleRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
return PageUtil.toPage(page.map(roleMapper::toDto));
PageRequest page = PageSort.pageRequest(pageable.getPageNumber(),pageable.getPageSize(),"createTime",Sort.Direction.DESC);
Page<Role> pages = roleRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), page);
return PageUtil.toPage(pages.map(roleMapper::toDto));
} }
@Override @Override
@ -133,7 +157,7 @@ public class RoleServiceImpl implements RoleService {
role.setDescription(role2.getDescription()); role.setDescription(role2.getDescription());
role.setDataScope(role2.getDataScope()); role.setDataScope(role2.getDataScope());
role.setLevel(role2.getLevel()); role.setLevel(role2.getLevel());
role.setOrg(role2.getOrg());
// role.setOrg(role2.getOrg());
roleRepository.save(role); roleRepository.save(role);
// 更新相关缓存 // 更新相关缓存
delCaches(role.getId(), null); delCaches(role.getId(), null);

18
system/src/main/java/com/canvas/web/modules/system/service/impl/UserServiceImpl.java

@ -1,6 +1,7 @@
package com.canvas.web.modules.system.service.impl; package com.canvas.web.modules.system.service.impl;
import com.canvas.web.config.FileProperties; import com.canvas.web.config.FileProperties;
import com.canvas.web.enums.ResponseEnum;
import com.canvas.web.exception.BaseException; import com.canvas.web.exception.BaseException;
import com.canvas.web.exception.EntityExistException; import com.canvas.web.exception.EntityExistException;
import com.canvas.web.modules.security.service.UserCacheClean; import com.canvas.web.modules.security.service.UserCacheClean;
@ -12,11 +13,14 @@ import com.canvas.web.modules.system.service.dto.RoleSmallDto;
import com.canvas.web.modules.system.service.dto.UserDto; import com.canvas.web.modules.system.service.dto.UserDto;
import com.canvas.web.modules.system.service.dto.UserQueryCriteria; import com.canvas.web.modules.system.service.dto.UserQueryCriteria;
import com.canvas.web.modules.system.service.mapstruct.UserMapper; import com.canvas.web.modules.system.service.mapstruct.UserMapper;
import com.canvas.web.modules.utils.PageSort;
import com.canvas.web.utils.*; import com.canvas.web.utils.*;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheConfig;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -51,12 +55,13 @@ public class UserServiceImpl implements UserService {
@Override @Override
public void create(User resources) {
public void create(UserDto userDto) {
User resources = userMapper.toEntity(userDto);
if (userRepository.findByUsername(resources.getUsername()) != null) { if (userRepository.findByUsername(resources.getUsername()) != null) {
throw new EntityExistException(User.class, "username", resources.getUsername());
throw new BaseException(ResponseEnum.USER_ADD_ERROR_EXIST_NAME.getMessage());
} }
if (userRepository.findByPhone(resources.getPhone()) != null) { if (userRepository.findByPhone(resources.getPhone()) != null) {
throw new EntityExistException(User.class, "phone", resources.getPhone());
throw new BaseException(ResponseEnum.USER_ADD_ERROR_EXIST_PHONE.getMessage());
} }
userRepository.save(resources); userRepository.save(resources);
} }
@ -68,7 +73,7 @@ public class UserServiceImpl implements UserService {
ValidationUtil.isNull(user.getId(), "User", "id", resources.getId()); ValidationUtil.isNull(user.getId(), "User", "id", resources.getId());
User user1 = userRepository.findByUsername(resources.getUsername()); User user1 = userRepository.findByUsername(resources.getUsername());
User user2 = userRepository.findByPhone(resources.getPhone()); User user2 = userRepository.findByPhone(resources.getPhone());
if (user1 != null && user.getId().equals(user1.getId())) {
if (user1 != null && !user.getId().equals(user1.getId())) {
throw new BaseException("username", resources.getUsername()); throw new BaseException("username", resources.getUsername());
} }
if (user2 != null && !user.getId().equals(user2.getId())) { if (user2 != null && !user.getId().equals(user2.getId())) {
@ -143,8 +148,9 @@ public class UserServiceImpl implements UserService {
@Override @Override
public Object queryAll(UserQueryCriteria criteria, Pageable pageable) { public Object queryAll(UserQueryCriteria criteria, Pageable pageable) {
Page<User> page = userRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
return PageUtil.toPage(page.map(userMapper::toDto));
PageRequest page= PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(),"createTime", Sort.Direction.DESC);
Page<User> pages = userRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), page);
return PageUtil.toPage(pages.map(userMapper::toDto));
} }

Loading…
Cancel
Save