diff --git a/common/src/main/java/com/canvas/web/enums/ResponseEnum.java b/common/src/main/java/com/canvas/web/enums/ResponseEnum.java index c473eea..e09b68c 100644 --- a/common/src/main/java/com/canvas/web/enums/ResponseEnum.java +++ b/common/src/main/java/com/canvas/web/enums/ResponseEnum.java @@ -66,6 +66,8 @@ public enum ResponseEnum { REPEAT_SUBMIT(20000, "不允许重复提交,请稍后再试"), ADD_FAIL(20001, "新增失败"), ADD_SUCCESS(20003, "新增成功"), + USER_ADD_ERROR_EXIST_NAME(20023,"用户名已经存在"), + USER_ADD_ERROR_EXIST_PHONE(20024,"手机号已经存在"), DELETE_FAIL(20004, "删除失败"), DELETE_SUCCESS(20005, "删除成功"), UPDATE_FAIL(20006, "修改失败"), diff --git a/common/src/main/java/com/canvas/web/utils/SecurityUtils.java b/common/src/main/java/com/canvas/web/utils/SecurityUtils.java index f24bd39..38e40be 100644 --- a/common/src/main/java/com/canvas/web/utils/SecurityUtils.java +++ b/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 + */ + public static Boolean getCurrentIsAdmin(){ + UserDetails userDetails=getCurrentUser(); + return new JSONObject(new JSONObject(userDetails).get("user")).get("isAdmin",Boolean.class); + } + /** * 获取当前用户的数据权限 diff --git a/system/src/main/java/com/canvas/web/modules/security/controller/AuthorizationController.java b/system/src/main/java/com/canvas/web/modules/security/controller/AuthorizationController.java index d287c12..84b5bf1 100644 --- a/system/src/main/java/com/canvas/web/modules/security/controller/AuthorizationController.java +++ b/system/src/main/java/com/canvas/web/modules/security/controller/AuthorizationController.java @@ -46,7 +46,7 @@ import java.util.concurrent.TimeUnit; @Slf4j @RestController -@RequestMapping("/auth") +@RequestMapping("/api/auth") @RequiredArgsConstructor @Api(tags = "系统:系统授权接口") public class AuthorizationController { diff --git a/system/src/main/java/com/canvas/web/modules/security/service/OnlineUserService.java b/system/src/main/java/com/canvas/web/modules/security/service/OnlineUserService.java index 23ff5c6..422c66d 100644 --- a/system/src/main/java/com/canvas/web/modules/security/service/OnlineUserService.java +++ b/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 browser = StringUtils.getBrowser(request); String address = StringUtils.getCityInfo(ip); + Boolean isAdmin=SecurityUtils.getCurrentIsAdmin(); OnlineUserDto onlineUserDto = null; 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) { log.error(e.getMessage(),e); } diff --git a/system/src/main/java/com/canvas/web/modules/security/service/dto/OnlineUserDto.java b/system/src/main/java/com/canvas/web/modules/security/service/dto/OnlineUserDto.java index 48a934f..83bb825 100644 --- a/system/src/main/java/com/canvas/web/modules/security/service/dto/OnlineUserDto.java +++ b/system/src/main/java/com/canvas/web/modules/security/service/dto/OnlineUserDto.java @@ -56,4 +56,9 @@ public class OnlineUserDto { * 登录时间 */ private Date loginTime; + + /** + * 是否超级管理员 + */ + private Boolean isAdmin; } diff --git a/system/src/main/java/com/canvas/web/modules/system/controller/RoleController.java b/system/src/main/java/com/canvas/web/modules/system/controller/RoleController.java index 1e83640..d7aea4d 100644 --- a/system/src/main/java/com/canvas/web/modules/system/controller/RoleController.java +++ b/system/src/main/java/com/canvas/web/modules/system/controller/RoleController.java @@ -34,18 +34,18 @@ public class RoleController { private final RoleService roleService; private final OrgService orgService; - private static final String ENTITY_NAME="role"; + private static final String ENTITY_NAME = "role"; private final RoleMapper roleMapper; @ApiOperation("新增角色") - @AnonymousPostMapping("/create") - public Response create(@Validated @RequestBody RoleDto roleDto){ - if (roleDto.getId() !=null){ - throw new BaseException("A new cannot already have an ID", ResponseEnum.ROLE_ADD_ERROR_EXIST_ID.getMessage()); + @PostMapping("/create") + public Response create(@Validated @RequestBody RoleDto roleDto) { + if (roleDto.getId() != null) { + throw new BaseException("新增角色id非空"); } //TODO:权限测试 - // getLevels(roleDto.getLevel()); + // getLevels(roleDto.getLevel()); roleService.create(roleMapper.toEntity(roleDto)); return Response.success(ResponseEnum.ADD_SUCCESS); @@ -53,44 +53,51 @@ public class RoleController { @ApiOperation("查询角色") - @AnonymousGetMapping("/list") - public Response queryAllRole(RoleQueryCriteria criteria, Pageable pageable){ + @GetMapping("/list") + public Response queryAllRole(RoleQueryCriteria criteria, Pageable pageable) { //获取当前登录组织机构id Long id = SecurityUtils.getCurrentOrgId(); - if (id!=1L){ + if (id != 1L) { criteria.getOrgIds().add(id); //如果查询条件不为空 if (!ObjectUtils.isEmpty(criteria.getBlurry())) { - return Response.success(roleService.queryAll(criteria,pageable)); + return Response.success(roleService.queryAll(criteria, pageable)); } return Response.success(roleService.queryAll(criteria, pageable)); } - return Response.success(roleService.queryAll(criteria,pageable)); + return Response.success(roleService.queryAll(criteria, pageable)); } @ApiOperation("修改角色") @PutMapping("edit") - public Response updateRole(@Validated(Role.Update.class) @RequestBody RoleDto role){ + public Response updateRole(@Validated(Role.Update.class) @RequestBody RoleDto role) { roleService.update(role); return Response.success("修改成功"); } + @ApiOperation("新增用户-下拉角色") + @GetMapping("dropdown/list") + public Response dropdownList() { + //获取当前登录组织机构id + Long id = SecurityUtils.getCurrentOrgId(); + return Response.success(roleService.findByOrgRole(id)); + } + @ApiOperation("查询机构所有权限") @GetMapping("menus") - public Response queryRoleMenus(){ - Long id=SecurityUtils.getCurrentOrgId(); + public Response queryRoleMenus() { + Long id = SecurityUtils.getCurrentOrgId(); return Response.success(orgService.findById(id)); } - //TODO:暂时不需要判断用户等级 - private int getLevels(Integer level){ + private int getLevels(Integer level) { List levels = roleService.findByUsersId(SecurityUtils.getCurrentUserId()).stream().map(RoleSmallDto::getLevel).collect(Collectors.toList()); int min = Collections.min(levels); - if(level != null){ - if(level < min){ + if (level != null) { + if (level < min) { throw new BaseException("权限不足,你的角色级别:" + min + ",低于操作的角色级别:" + level); } } diff --git a/system/src/main/java/com/canvas/web/modules/system/controller/UserController.java b/system/src/main/java/com/canvas/web/modules/system/controller/UserController.java index fbf7f1e..9562ff2 100644 --- a/system/src/main/java/com/canvas/web/modules/system/controller/UserController.java +++ b/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.List; +import java.util.Set; import java.util.stream.Collectors; @Api(tags = "用户管理") @@ -47,8 +48,8 @@ public class UserController { private final UserMapper userMapper; @ApiOperation("新增用户") - @PostMapping - public Response create(@Validated @RequestBody User resources) { + @PostMapping("create") + public Response create(@Validated @RequestBody UserDto resources) { // 默认密码 123456 resources.setPassword(passwordEncoder.encode("123456")); userService.create(resources); @@ -61,10 +62,13 @@ public class UserController { public Response query(UserQueryCriteria criteria, Pageable pageable) { //获取当前登录组织机构id Long id = SecurityUtils.getCurrentOrgId(); + //如果当前用户机构不是超级管理员 if (id != 1L) { //加入到机构查询条件 criteria.getOrgIds().add(id); + //本机构激活状态的用户 + //criteria.setIsAdmin(true); //如果查询条件不为空就把查询条件带入查询 if (!ObjectUtils.isEmpty(criteria.getBlurry())) { return Response.success(userService.queryAll(criteria, pageable)); @@ -72,12 +76,14 @@ public class UserController { //返回本机构用户列表 return Response.success(userService.queryAll(criteria, pageable)); } + //激活状态查询 + //criteria.setIsAdmin(true); //返回所有列表 return Response.success(userService.queryAll(criteria, pageable)); } @ApiOperation("修改用户") - @PostMapping("edit") + @PutMapping("edit") public Response updateUser(@Validated(User.Update.class) @RequestBody UserDto userDto) throws Exception { User user = userMapper.toEntity(userDto); checkLevel(user); @@ -85,6 +91,13 @@ public class UserController { return Response.success("修改成功"); } + @ApiOperation("删除用户") + @DeleteMapping("delete") + public Response deleteUser(@RequestBody Set ids) { + userService.delete(ids); + return Response.success(ResponseEnum.DELETE_SUCCESS); + } + //如果当前用户角色级别低于创建用户的角色级别,抛出权限不足 private void checkLevel(User user) { diff --git a/system/src/main/java/com/canvas/web/modules/system/domain/Org.java b/system/src/main/java/com/canvas/web/modules/system/domain/Org.java index 8538db3..8a471b8 100644 --- a/system/src/main/java/com/canvas/web/modules/system/domain/Org.java +++ b/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) private Long id; - @JsonIgnore - @ManyToMany(mappedBy = "org") - @ApiModelProperty(value = "角色") - private Set roles; +// @JsonIgnore +// @ManyToMany(mappedBy = "org") +// @ApiModelProperty(value = "角色") +// private Set roles; @ManyToMany diff --git a/system/src/main/java/com/canvas/web/modules/system/domain/Role.java b/system/src/main/java/com/canvas/web/modules/system/domain/Role.java index 04643db..8aa5e25 100644 --- a/system/src/main/java/com/canvas/web/modules/system/domain/Role.java +++ b/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 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; +// @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; @NotBlank @ApiModelProperty(value = "名称", hidden = true) @@ -57,7 +57,7 @@ public class Role extends BaseEntity implements Serializable { @Column(name = "level") @ApiModelProperty(value = "级别,数值越小,级别越大") - private Integer level = 3; + private Integer level; @ApiModelProperty(value = "描述") private String description; diff --git a/system/src/main/java/com/canvas/web/modules/system/domain/User.java b/system/src/main/java/com/canvas/web/modules/system/domain/User.java index 71e925e..5cd0a34 100644 --- a/system/src/main/java/com/canvas/web/modules/system/domain/User.java +++ b/system/src/main/java/com/canvas/web/modules/system/domain/User.java @@ -39,7 +39,7 @@ public class User extends BaseEntity implements Serializable { @OneToOne - @JoinColumn(name = "id") + @JoinColumn(name = "org_id") @ApiModelProperty(value = "机构") private Org org; @@ -53,7 +53,6 @@ public class User extends BaseEntity implements Serializable { private String nickName; @Email - @NotBlank @ApiModelProperty(value = "邮箱") private String email; diff --git a/system/src/main/java/com/canvas/web/modules/system/repository/RoleRepository.java b/system/src/main/java/com/canvas/web/modules/system/repository/RoleRepository.java index 9987fe9..ed920e0 100644 --- a/system/src/main/java/com/canvas/web/modules/system/repository/RoleRepository.java +++ b/system/src/main/java/com/canvas/web/modules/system/repository/RoleRepository.java @@ -36,6 +36,11 @@ public interface RoleRepository extends JpaRepository, JpaSpecificat List findInMenuId(List menuIds); + //根据机构id查询 + @Query(value = "SELECT * FROM sys_roles_org,sys_role WHERE org_id=?1",nativeQuery = true) + List findByOrgId(Long id); + + diff --git a/system/src/main/java/com/canvas/web/modules/system/repository/UserRepository.java b/system/src/main/java/com/canvas/web/modules/system/repository/UserRepository.java index 9e2e93d..cc7b0da 100644 --- a/system/src/main/java/com/canvas/web/modules/system/repository/UserRepository.java +++ b/system/src/main/java/com/canvas/web/modules/system/repository/UserRepository.java @@ -67,6 +67,10 @@ public interface UserRepository extends JpaRepository, 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) List findByMenuId(Long id); + +//TODO:根据角色获取机构id @Query(value = "",nativeQuery = true) +// List findByRoleOrgId(Long orgId); + /** * 根据Id删除 * @param ids / diff --git a/system/src/main/java/com/canvas/web/modules/system/service/RoleService.java b/system/src/main/java/com/canvas/web/modules/system/service/RoleService.java index 305e38d..e35db63 100644 --- a/system/src/main/java/com/canvas/web/modules/system/service/RoleService.java +++ b/system/src/main/java/com/canvas/web/modules/system/service/RoleService.java @@ -19,10 +19,17 @@ public interface RoleService { List findByUsersId(Long id); + //根据id查询角色名称 + RoleDto findById(long id); + + //根据角色查询角色级别 Integer findByRoles(Set roles); + //根据机构查询角色 + List findByOrgRole(Long id); + //创建角色 void create(Role resources); diff --git a/system/src/main/java/com/canvas/web/modules/system/service/UserService.java b/system/src/main/java/com/canvas/web/modules/system/service/UserService.java index 70bedf3..bab1f26 100644 --- a/system/src/main/java/com/canvas/web/modules/system/service/UserService.java +++ b/system/src/main/java/com/canvas/web/modules/system/service/UserService.java @@ -27,7 +27,7 @@ public interface UserService { * * @param resources / */ - void create(User resources); + void create(UserDto resources); /** * 编辑用户 diff --git a/system/src/main/java/com/canvas/web/modules/system/service/dto/RoleDto.java b/system/src/main/java/com/canvas/web/modules/system/service/dto/RoleDto.java index e4b6f50..eeb264b 100644 --- a/system/src/main/java/com/canvas/web/modules/system/service/dto/RoleDto.java +++ b/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.canvas.web.base.BaseDTO; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Getter; import lombok.Setter; @@ -17,9 +18,10 @@ public class RoleDto extends BaseDTO implements Serializable { private Long id; + //@JsonIgnore private Set menus; - private Set orgDtos; +// private Set orgDtos; @NotBlank(message = "角色名称不能为空") private String name; diff --git a/system/src/main/java/com/canvas/web/modules/system/service/dto/RoleQueryCriteria.java b/system/src/main/java/com/canvas/web/modules/system/service/dto/RoleQueryCriteria.java index 6ee2656..d67ea3b 100644 --- a/system/src/main/java/com/canvas/web/modules/system/service/dto/RoleQueryCriteria.java +++ b/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; +import com.alibaba.fastjson.annotation.JSONField; import com.canvas.web.annotation.Query; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.sql.Timestamp; @@ -17,6 +19,8 @@ public class RoleQueryCriteria { @Query(type = Query.Type.BETWEEN) private List createTime; + @JSONField(name = "OrgIds") + @JsonProperty("org_ids") @Query(propName = "id", type = Query.Type.IN, joinName = "org") private Set OrgIds = new HashSet<>(); } diff --git a/system/src/main/java/com/canvas/web/modules/system/service/dto/UserDto.java b/system/src/main/java/com/canvas/web/modules/system/service/dto/UserDto.java index 0cb2b1c..bd586a6 100644 --- a/system/src/main/java/com/canvas/web/modules/system/service/dto/UserDto.java +++ b/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; - @JsonIgnore + //@JsonIgnore private Boolean isAdmin = false; private Date pwdResetTime; diff --git a/system/src/main/java/com/canvas/web/modules/system/service/dto/UserQueryCriteria.java b/system/src/main/java/com/canvas/web/modules/system/service/dto/UserQueryCriteria.java index aabe988..71cfa08 100644 --- a/system/src/main/java/com/canvas/web/modules/system/service/dto/UserQueryCriteria.java +++ b/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") private Set OrgIds = new HashSet<>(); + @Query + private Boolean isAdmin; + private Long orgId; @Query(type = Query.Type.BETWEEN) diff --git a/system/src/main/java/com/canvas/web/modules/system/service/impl/OrgServiceImpl.java b/system/src/main/java/com/canvas/web/modules/system/service/impl/OrgServiceImpl.java index 93d2227..d8459fa 100644 --- a/system/src/main/java/com/canvas/web/modules/system/service/impl/OrgServiceImpl.java +++ b/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; 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.RoleRepository; 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.Pageable; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Set; @@ -43,8 +45,11 @@ public class OrgServiceImpl implements OrgService { } @Override + @Transactional(rollbackFor = Exception.class) public void create(OrgDto orgDto) { - + orgRepository.save(orgMapper.toEntity(orgDto)); + //清理缓存 + delCaches(orgDto.getId()); } @Override @@ -78,4 +83,8 @@ public class OrgServiceImpl implements OrgService { Page page =orgRepository.findAll((root, query, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder), pageable); return PageUtil.toPage(page.map(orgMapper::toDto)); } + + public void delCaches(Long id){ + + } } diff --git a/system/src/main/java/com/canvas/web/modules/system/service/impl/RoleServiceImpl.java b/system/src/main/java/com/canvas/web/modules/system/service/impl/RoleServiceImpl.java index 94dd267..d3fae44 100644 --- a/system/src/main/java/com/canvas/web/modules/system/service/impl/RoleServiceImpl.java +++ b/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.mapstruct.RoleMapper; import com.canvas.web.modules.system.service.mapstruct.RoleSmallMapper; +import com.canvas.web.modules.utils.PageSort; import com.canvas.web.utils.*; import lombok.RequiredArgsConstructor; import org.springframework.cache.annotation.CacheConfig; +import org.springframework.cache.annotation.Cacheable; import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; 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; @Service @@ -46,13 +47,13 @@ public class RoleServiceImpl implements RoleService { @Override public List mapToGrantedAuthorities(UserDto user) { - Set permissions= new HashSet<>(); + Set permissions = new HashSet<>(); //如果是管理员直接返回 - if (user.getIsAdmin()){ + if (user.getIsAdmin()) { permissions.add("admin"); return permissions.stream().map(SimpleGrantedAuthority::new).collect(Collectors.toList()); } - Set roles =roleRepository.findByUserId(user.getId()); + Set roles = roleRepository.findByUserId(user.getId()); permissions = roles.stream().flatMap(role -> role.getMenus().stream()) .filter(menu -> StringUtils.isNotBlank(menu.getPermission())) .map(Menu::getPermission).collect(Collectors.toSet()); @@ -65,9 +66,31 @@ public class RoleServiceImpl implements RoleService { 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 public Integer findByRoles(Set roles) { - return null; + if (roles.size() == 0) { + return Integer.MAX_VALUE; + } + Set 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 findByOrgRole(Long id) { + return roleSmallMapper.toDto(roleRepository.findByOrgId(id)); } @Override @@ -107,8 +130,9 @@ public class RoleServiceImpl implements RoleService { @Override public Object queryAll(RoleQueryCriteria criteria, Pageable pageable) { - Page 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 pages = roleRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), page); + return PageUtil.toPage(pages.map(roleMapper::toDto)); } @Override @@ -133,7 +157,7 @@ public class RoleServiceImpl implements RoleService { role.setDescription(role2.getDescription()); role.setDataScope(role2.getDataScope()); role.setLevel(role2.getLevel()); - role.setOrg(role2.getOrg()); +// role.setOrg(role2.getOrg()); roleRepository.save(role); // 更新相关缓存 delCaches(role.getId(), null); diff --git a/system/src/main/java/com/canvas/web/modules/system/service/impl/UserServiceImpl.java b/system/src/main/java/com/canvas/web/modules/system/service/impl/UserServiceImpl.java index 96ddc9a..d066990 100644 --- a/system/src/main/java/com/canvas/web/modules/system/service/impl/UserServiceImpl.java +++ b/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; import com.canvas.web.config.FileProperties; +import com.canvas.web.enums.ResponseEnum; import com.canvas.web.exception.BaseException; import com.canvas.web.exception.EntityExistException; 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.UserQueryCriteria; import com.canvas.web.modules.system.service.mapstruct.UserMapper; +import com.canvas.web.modules.utils.PageSort; import com.canvas.web.utils.*; import lombok.RequiredArgsConstructor; import org.springframework.cache.annotation.CacheConfig; import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -51,12 +55,13 @@ public class UserServiceImpl implements UserService { @Override - public void create(User resources) { + public void create(UserDto userDto) { + User resources = userMapper.toEntity(userDto); 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) { - throw new EntityExistException(User.class, "phone", resources.getPhone()); + throw new BaseException(ResponseEnum.USER_ADD_ERROR_EXIST_PHONE.getMessage()); } userRepository.save(resources); } @@ -68,7 +73,7 @@ public class UserServiceImpl implements UserService { ValidationUtil.isNull(user.getId(), "User", "id", resources.getId()); User user1 = userRepository.findByUsername(resources.getUsername()); 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()); } if (user2 != null && !user.getId().equals(user2.getId())) { @@ -143,8 +148,9 @@ public class UserServiceImpl implements UserService { @Override public Object queryAll(UserQueryCriteria criteria, Pageable pageable) { - Page 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 pages = userRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), page); + return PageUtil.toPage(pages.map(userMapper::toDto)); }