Browse Source

提交代码,用户权限

master
刘力 3 years ago
parent
commit
a12e9ddf90
  1. 34
      common/src/main/java/com/canvas/web/base/BaseMapper.java
  2. 25
      system/src/main/java/com/canvas/web/modules/system/domain/Org.java
  3. 12
      system/src/main/java/com/canvas/web/modules/system/domain/Role.java
  4. 8
      system/src/main/java/com/canvas/web/modules/system/domain/User.java
  5. 75
      system/src/main/java/com/canvas/web/modules/system/repository/UserRepository.java
  6. 49
      system/src/main/java/com/canvas/web/modules/system/service/dto/OrgDto.java
  7. 14
      system/src/main/java/com/canvas/web/modules/system/service/impl/UserServiceImpl.java
  8. 11
      system/src/main/java/com/canvas/web/modules/system/service/mapstruct/MenuMapper.java
  9. 11
      system/src/main/java/com/canvas/web/modules/system/service/mapstruct/OrgMapper.java
  10. 9
      system/src/main/java/com/canvas/web/modules/system/service/mapstruct/RoleMapper.java
  11. 12
      system/src/main/java/com/canvas/web/modules/system/service/mapstruct/UserMapper.java
  12. 2
      system/src/main/java/com/canvas/web/modules/utils/HttpServletUtil.java

34
common/src/main/java/com/canvas/web/base/BaseMapper.java

@ -0,0 +1,34 @@
package com.canvas.web.base;
import java.util.List;
public interface BaseMapper<D, E> {
/**
* DTO转Entity
* @param dto /
* @return /
*/
E toEntity(D dto);
/**
* Entity转DTO
* @param entity /
* @return /
*/
D toDto(E entity);
/**
* DTO集合转Entity集合
* @param dtoList /
* @return /
*/
List<E> toEntity(List<D> dtoList);
/**
* Entity集合转DTO集合
* @param entityList /
* @return /
*/
List <D> toDto(List<E> entityList);
}

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

@ -1,14 +1,17 @@
package com.canvas.web.modules.system.domain;
import com.canvas.web.base.BaseEntity;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Objects;
import java.util.Set;
@Entity
@Getter
@ -22,8 +25,30 @@ public class Org extends BaseEntity implements Serializable {
@ApiModelProperty(value = "ID", hidden = true)
private Long id;
@JsonIgnore
@ManyToMany(mappedBy = "org")
@ApiModelProperty(value = "角色")
private Set<Role> roles;
@NotBlank
@ApiModelProperty(value = "机构名称")
private String name;
@ApiModelProperty(value = "机构排序")
private Integer orgSort;
@ApiModelProperty(value = "上级机构")
private Long pid;
@ApiModelProperty(value = "子节点数目", hidden = true)
private Integer subCount = 0;
@NotNull
@ApiModelProperty(value = "是否启用")
private Boolean enabled;
@NotBlank
@ApiModelProperty(value = "软件版本")
private String version;
@Override

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

@ -40,12 +40,12 @@ public class Role extends BaseEntity implements Serializable {
@ApiModelProperty(value = "菜单", hidden = true)
private Set<Menu> menus;
// @ManyToMany
// @JoinTable(name = "sys_roles_depts",
// joinColumns = {@JoinColumn(name = "role_id",referencedColumnName = "role_id")},
// inverseJoinColumns = {@JoinColumn(name = "dept_id",referencedColumnName = "dept_id")})
// @ApiModelProperty(value = "部门", hidden = true)
// private Set<Dept> depts;
@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
@ApiModelProperty(value = "名称", hidden = true)

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

@ -38,10 +38,10 @@ public class User extends BaseEntity implements Serializable {
// @OneToOne
// @JoinColumn(name = "dept_id")
// @ApiModelProperty(value = "用户部门")
// private Org dept;
@OneToOne
@JoinColumn(name = "id")
@ApiModelProperty(value = "用户部门")
private Org dept;
@NotBlank
@Column(unique = true)

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

@ -3,6 +3,81 @@ package com.canvas.web.modules.system.repository;
import com.canvas.web.modules.system.domain.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import java.util.Date;
import java.util.List;
import java.util.Set;
public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificationExecutor<User> {
/**
* 根据用户名查询
* @param username 用户名
* @return /
*/
User findByUsername(String username);
/**
* 根据手机号查询
* @param phone 手机号
* @return /
*/
User findByPhone(String phone);
@Modifying
@Query(value = "update sys_user set password = ?2 , pwd_reset_time = ?3 where username = ?1",nativeQuery = true)
void updatePass(String username, String pass, Date lastPasswordResetTime);
/**
* 根据角色查询用户
* @param roleId /
* @return /
*/
@Query(value = "SELECT u.* FROM sys_user u, sys_users_roles r WHERE" +
" u.user_id = r.user_id AND r.role_id = ?1", nativeQuery = true)
List<User> findByRoleId(Long roleId);
/**
* 根据角色中的部门查询
* @param id /
* @return /
*/
@Query(value = "SELECT u.* FROM sys_user u, sys_users_roles r, sys_roles_depts d WHERE " +
"u.user_id = r.user_id AND r.role_id = d.role_id AND r.role_id = ?1 group by u.user_id", nativeQuery = true)
List<User> findByDeptRoleId(Long id);
/**
* 根据菜单查询
* @param id 菜单ID
* @return /
*/
@Query(value = "SELECT u.* FROM sys_user u, sys_users_roles ur, sys_roles_menus rm WHERE\n" +
"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);
/**
* 根据Id删除
* @param ids /
*/
void deleteAllByIdIn(Set<Long> ids);
/**
* 根据部门查询
* @param deptIds /
* @return /
*/
@Query(value = "SELECT count(1) FROM sys_user u WHERE u.dept_id IN ?1", nativeQuery = true)
int countByDepts(Set<Long> deptIds);
/**
* 根据角色查询
* @param ids /
* @return /
*/
@Query(value = "SELECT count(1) FROM sys_user u, sys_users_roles r WHERE " +
"u.user_id = r.user_id AND r.role_id in ?1", nativeQuery = true)
int countByRoles(Set<Long> ids);
}

49
system/src/main/java/com/canvas/web/modules/system/service/dto/OrgDto.java

@ -0,0 +1,49 @@
package com.canvas.web.modules.system.service.dto;
import com.canvas.web.base.BaseDTO;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.List;
import java.util.Objects;
@Getter
@Setter
public class OrgDto extends BaseDTO implements Serializable {
private Long id;
private String name;
private Boolean enabled;
private Integer orgSort;
@JsonInclude(JsonInclude.Include.NON_EMPTY)
private List<OrgDto> children;
private Long pid;
private Integer subCount;
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
OrgDto orgDto = (OrgDto) o;
return Objects.equals(id, orgDto.id) &&
Objects.equals(name, orgDto.name);
}
@Override
public int hashCode() {
return Objects.hash(id, name);
}
}

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

@ -1,8 +1,13 @@
package com.canvas.web.modules.system.service.impl;
import com.canvas.web.config.FileProperties;
import com.canvas.web.modules.security.service.UserCacheClean;
import com.canvas.web.modules.system.repository.UserRepository;
import com.canvas.web.modules.system.service.UserService;
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.utils.RedisUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.data.domain.Pageable;
@ -19,6 +24,15 @@ import java.util.Set;
@RequiredArgsConstructor
@CacheConfig(cacheNames = "user")
public class UserServiceImpl implements UserService{
private final UserRepository userRepository;
private final UserMapper userMapper;
private final FileProperties properties;
private final RedisUtils redisUtils;
private final UserCacheClean userCacheClean;
@Override
public UserDto findById(long id) {
return null;

11
system/src/main/java/com/canvas/web/modules/system/service/mapstruct/MenuMapper.java

@ -0,0 +1,11 @@
package com.canvas.web.modules.system.service.mapstruct;
import com.canvas.web.base.BaseMapper;
import com.canvas.web.modules.system.domain.Menu;
import com.canvas.web.modules.system.service.dto.MenuDto;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface MenuMapper extends BaseMapper<MenuDto, Menu> {
}

11
system/src/main/java/com/canvas/web/modules/system/service/mapstruct/OrgMapper.java

@ -0,0 +1,11 @@
package com.canvas.web.modules.system.service.mapstruct;
import com.canvas.web.base.BaseMapper;
import com.canvas.web.modules.system.domain.Org;
import com.canvas.web.modules.system.service.dto.OrgDto;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface OrgMapper extends BaseMapper<OrgDto, Org> {
}

9
system/src/main/java/com/canvas/web/modules/system/service/mapstruct/RoleMapper.java

@ -0,0 +1,9 @@
package com.canvas.web.modules.system.service.mapstruct;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
@Mapper(componentModel = "spring", uses = {MenuMapper.class, OrgMapper.class}, unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface RoleMapper {
}

12
system/src/main/java/com/canvas/web/modules/system/service/mapstruct/UserMapper.java

@ -0,0 +1,12 @@
package com.canvas.web.modules.system.service.mapstruct;
import com.canvas.web.base.BaseMapper;
import com.canvas.web.modules.system.domain.User;
import com.canvas.web.modules.system.service.dto.UserDto;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
@Mapper(componentModel = "spring",uses = {RoleMapper.class, OrgMapper.class},unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface UserMapper extends BaseMapper<UserDto, User> {
}

2
system/src/main/java/com/canvas/web/modules/utils/HttpServletUtil.java

@ -1,7 +1,7 @@
package com.canvas.web.modules.utils;
import org.springframework.util.StringUtils;
import com.canvas.web.utils.StringUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

Loading…
Cancel
Save