zelong.shao

manager|用户信息&&角色权限

Showing 29 changed files with 330 additions and 169 deletions
package com.fedex.connect.common.dependencies.enums.sys;
public enum RoleEnum {
SYSTEM(0L,"System","系统"),
CUSOTMER(1L,"Cusotmer","用户"),
SYSTEM("system","System","系统"),
CUSOTMER("customer","Customer","用户"),
;
private Long code;
private String code;
private String enMsg;
private String msg;
RoleEnum(Long code, String enMsg,String msg) {
RoleEnum(String code, String enMsg,String msg) {
this.code = code;
this.enMsg = enMsg;
this.msg = msg;
}
public Long getCode() {
public String getCode() {
return code;
}
public void setCode(Long code) {
public void setCode(String code) {
this.code = code;
}
......
package com.fedex.connect.common.dependencies.enums.sys;
public enum UserTypeEnum {
LOCAL(0L,"LOCAL","本地账号"),
FCL(1L,"FCL","FCL账号");
LOCAL("userType_01","LOCAL","本地账号"),
FCL("userType_02","FCL","FCL账号");
private Long code;
private String code;
private String enMsg;
private String msg;
UserTypeEnum(Long code, String enMsg,String msg) {
UserTypeEnum(String code, String enMsg,String msg) {
this.code = code;
this.enMsg = enMsg;
this.msg = msg;
}
public Long getCode() {
public String getCode() {
return code;
}
public void setCode(Long code) {
public void setCode(String code) {
this.code = code;
}
......
......@@ -8,6 +8,7 @@ import com.fedex.connect.common.model.sys.User;
import com.fedex.connect.manager.config.PropertiesConfig;
import com.fedex.connect.manager.service.bi.IDicEntriesService;
import com.fedex.connect.manager.service.log.ILogLoginService;
import com.fedex.connect.manager.service.sys.IPrivilegeService;
import com.fedex.connect.manager.service.sys.ISysAuthService;
import com.fedex.connect.manager.service.sys.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -32,6 +33,8 @@ public class BaseController extends BasicController {
protected ILogLoginService logLoginService;
@Autowired
protected IDicEntriesService dicEntriesService;
@Autowired
protected IPrivilegeService privilegeService;
public User getCurrentUserInfo(){
User user = this.getUserInfo(localeMessageUtil);
......
package com.fedex.connect.manager.controller.sys;
import com.fedex.connect.common.dependencies.date.vo.ResponseVo;
import org.springframework.web.bind.annotation.PathVariable;
public interface ISysPrivilegeController {
ResponseVo getPrivilege(@PathVariable Long userId);
}
package com.fedex.connect.manager.controller.sys;
import com.fedex.connect.common.dependencies.date.vo.ResponseVo;
public interface ISysUserController {
ResponseVo getUser();
}
......@@ -38,7 +38,7 @@ import java.util.*;
@Slf4j
@RestController
@RequestMapping(value = "/auth", name = "权鉴操作相关请求")
@Api(value="SysAuthController",tags={"用户相关请求(无需token)"})
@Api(value="SysAuthController",tags={"登陆相关请求(无需token)"})
public class SysAuthController extends BaseController implements ISysAuthController {
@Autowired
......
package com.fedex.connect.manager.controller.sys.impl;
import com.fedex.connect.common.dependencies.date.vo.ResponseVo;
import com.fedex.connect.manager.controller.base.BaseController;
import com.fedex.connect.manager.controller.sys.ISysPrivilegeController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping(value = "/privilege", name = "权限相关请求")
@Api(value="SysPrivilegeController",tags={"权限相关请求"})
public class SysPrivilegeController extends BaseController implements ISysPrivilegeController {
@Override
@GetMapping(value = {"/{userId}"})
@ApiOperation(value = "根据用户ID获取菜单")
public ResponseVo getPrivilege(@PathVariable Long userId){
return privilegeService.getPrivilegeByUserId(userId);
}
}
package com.fedex.connect.manager.controller.sys.impl;
import com.fedex.connect.common.dependencies.date.vo.ResponseVo;
import com.fedex.connect.common.dependencies.util.CurrentUserInfo;
import com.fedex.connect.common.model.sys.User;
import com.fedex.connect.manager.controller.base.BaseController;
import com.fedex.connect.manager.controller.sys.ISysUserController;
import com.fedex.connect.manager.enums.ResponseCode;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping(value = "/user", name = "用户相关请求")
@Api(value="SysUserController",tags={"用户相关请求(无需token)"})
public class SysUserController extends BaseController implements ISysUserController {
@Override
@GetMapping("/getUser")
@ApiOperation(value = "登录界面查询用户,可不要token")
public ResponseVo getUser(){
ResponseVo success = responseUtils.success();
try{
User sysUser = CurrentUserInfo.getUser();
if (sysUser == null){
responseUtils.fail(ResponseCode.MESSAGE_CODE_40004);
}
if (sysUser.getId() == null || sysUser.getId() == 0){
responseUtils.fail(ResponseCode.MESSAGE_CODE_40005);
}
//返回用户信息
return responseUtils.success(sysUser);
} catch (Exception e){
log.error("获取用户信息失败",e);
responseUtils.fail(ResponseCode.MESSAGE_CODE_40006);
}
return success;
}
}
......@@ -6,6 +6,7 @@ import com.fedex.connect.common.dependencies.enums.sys.UserTypeEnum;
import com.fedex.connect.common.dependencies.util.Utils;
import com.fedex.connect.common.model.sys.User;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import java.util.Date;
......@@ -14,6 +15,7 @@ import java.util.Date;
* 用户相关DTO
*/
@ApiModel(value = "用户相关DTO")
@Data
public class SysUserDto {
/**
......@@ -42,6 +44,8 @@ public class SysUserDto {
user.setStatus(DatabaseConstants.GLOBAL_STATUS_VALID);
user.setRemark(dto.getRemark());
user.setTypeCode(dto.getTypeCode());
user.setUserUuid(dto.getUserUuid());
user.setTypeName(dto.getTypeName());
return user;
}
......@@ -55,7 +59,8 @@ public class SysUserDto {
} else {
this.userName = fcl_acc_no;
}
this.typeCode = UserTypeEnum.FCL.getEnMsg();
this.typeCode = UserTypeEnum.FCL.getCode();
this.typeName = UserTypeEnum.FCL.getMsg();
this.password = fcl_pwd;
this.loginName = uuid;
this.email = null;
......@@ -63,6 +68,7 @@ public class SysUserDto {
this.companyName = null;
this.unifiedBusinessNum = null;
this.customsSerialNum = null;
this.userUuid = uuid;
}
/**
......@@ -70,6 +76,10 @@ public class SysUserDto {
*/
private Long id;
private String typeName;
private String userUuid;
/**
* 用户账号
*/
......@@ -157,147 +167,5 @@ public class SysUserDto {
@JsonIgnore
private String remark;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword2() {
return password2;
}
public void setPassword2(String password2) {
this.password2 = password2;
}
public String getAccountNo() {
return accountNo;
}
public void setAccountNo(String accountNo) {
this.accountNo = accountNo;
}
public String getFedexAccNo2() {
return fedexAccNo2;
}
public void setFedexAccNo2(String fedexAccNo2) {
this.fedexAccNo2 = fedexAccNo2;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public String getUnifiedBusinessNum() {
return unifiedBusinessNum;
}
public void setUnifiedBusinessNum(String unifiedBusinessNum) {
this.unifiedBusinessNum = unifiedBusinessNum;
}
public String getCustomsSerialNum() {
return customsSerialNum;
}
public void setCustomsSerialNum(String customsSerialNum) {
this.customsSerialNum = customsSerialNum;
}
public Long getTypeId() {
return typeId;
}
public void setTypeId(Long typeId) {
this.typeId = typeId;
}
public String getTypeCode() {
return typeCode;
}
public void setTypeCode(String typeCode) {
this.typeCode = typeCode;
}
public Long getStatus() {
return status;
}
public void setStatus(Long status) {
this.status = status;
}
public boolean isPolicyFlag() {
return policyFlag;
}
public void setPolicyFlag(boolean policyFlag) {
this.policyFlag = policyFlag;
}
public boolean isClauseFlag() {
return clauseFlag;
}
public void setClauseFlag(boolean clauseFlag) {
this.clauseFlag = clauseFlag;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}
......
......@@ -10,12 +10,9 @@ public enum ResponseCode {
MESSAGE_CODE_40001(40001,"business_exception_40001"),
MESSAGE_CODE_40002(40002,"business_log_40002"),
MESSAGE_CODE_40003(40003,"system_exception_40003"),
/******打个样,编写样例*****/
// MESSAGE_CODE_40001(40001,"business_exception_40001"),
// MESSAGE_CODE_40002(40002,"business_success_40002"),
// MESSAGE_CODE_40003(40003,"system_exception_40003"),
// MESSAGE_CODE_40004(40004,"system_success_40004"),
// MESSAGE_CODE_40005(40005,"business_log_40005"),
MESSAGE_CODE_40004(40004,"system_exception_40004"),
MESSAGE_CODE_40005(40005,"system_exception_40005"),
MESSAGE_CODE_40006(40006,"system_exception_40006"),
;
private Integer code;
private String msg;
......
......@@ -7,6 +7,9 @@ import com.fedex.connect.common.dao.sys.RoleMapper;
import com.fedex.connect.common.dao.sys.UserMapper;
import com.fedex.connect.common.dao.sys.UserRoleMapper;
import com.fedex.connect.manager.repository.dao.ParamConfigExtMapper;
import com.fedex.connect.manager.repository.dao.PrivilegeExtMapper;
import com.fedex.connect.manager.repository.dao.RoleExtMapper;
import com.fedex.connect.manager.repository.dao.RolePrivilegeExtMapper;
import org.springframework.beans.factory.annotation.Autowired;
public class BaseDao {
......@@ -24,4 +27,10 @@ public class BaseDao {
public DictionaryEntriesMapper dictionaryEntriesMapper;
@Autowired
public ParamConfigExtMapper paramConfigExtMapper;
@Autowired
public RolePrivilegeExtMapper rolePrivilegeExtMapper;
@Autowired
public RoleExtMapper roleExtMapper;
@Autowired
public PrivilegeExtMapper privilegeExtMapper;
}
......
package com.fedex.connect.manager.repository.dao;
import com.fedex.connect.common.model.sys.Privilege;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface PrivilegeExtMapper {
@Select({
"<script>",
"SELECT * FROM T_SYS_PRIVILEGE",
"WHERE ID IN",
"<foreach collection='ids' item='id' open='(' separator=',' close=')'>",
"#{id}",
"</foreach>",
"</script>"
})
List<Privilege> findPrivilegesByIds(@Param("ids") List<Long> ids);
}
package com.fedex.connect.manager.repository.dao;
import com.fedex.connect.common.model.sys.Role;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface RoleExtMapper {
@Select({
"<script>",
"SELECT * FROM T_SYS_ROLE",
"WHERE ID IN",
"<foreach collection='ids' item='id' open='(' separator=',' close=')'>",
"#{id}",
"</foreach>",
"</script>"
})
List<Role> findRolesByIds(@Param("ids") List<Long> ids);
}
package com.fedex.connect.manager.repository.dao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface RolePrivilegeExtMapper {
@Select({
"<script>",
"SELECT DISTINCT PRIV_ID FROM T_SYS_ROLE_PRIVILEGE",
"WHERE ROLE_ID IN",
"<foreach collection='roleIds' item='roleId' open='(' separator=',' close=')'>",
"#{roleId}",
"</foreach>",
"</script>"
})
List<Long> findByRoleIds(@Param("roleIds") List<Long> roleIds);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fedex.connect.manager.repository.dao.PrivilegeExtMapper">
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fedex.connect.manager.repository.dao.RoleExtMapper">
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fedex.connect.manager.repository.dao.RolePrivilegeExtMapper">
</mapper>
\ No newline at end of file
package com.fedex.connect.manager.repository.repo.sys;
import com.fedex.connect.common.model.sys.Privilege;
import java.util.List;
public interface IPrivilegeRepository {
List<Privilege> findPrivilegesByIds(List<Long> ids);
}
package com.fedex.connect.manager.repository.repo.sys;
import java.util.List;
public interface IRolePrivilegeRepository {
List<Long> findByRoleIds(List<Long> roleIds);
}
......@@ -11,4 +11,6 @@ public interface IRoleRepository {
Role selectByPrimaryKey(Long id);
int insert(Role record);
List<Role> selectByIds(List<Long> ids);
}
......
package com.fedex.connect.manager.repository.repo.sys.impl;
import com.fedex.connect.common.model.sys.Privilege;
import com.fedex.connect.manager.repository.base.BaseDao;
import com.fedex.connect.manager.repository.repo.sys.IPrivilegeRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public class PrivilegeRepositoryImpl extends BaseDao implements IPrivilegeRepository {
@Override
public List<Privilege> findPrivilegesByIds(List<Long> ids) {
return privilegeExtMapper.findPrivilegesByIds(ids);
}
}
package com.fedex.connect.manager.repository.repo.sys.impl;
import com.fedex.connect.manager.repository.base.BaseDao;
import com.fedex.connect.manager.repository.repo.sys.IRolePrivilegeRepository;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public class RolePrivilegeRepositoryImpl extends BaseDao implements IRolePrivilegeRepository {
public List<Long> findByRoleIds(@Param("roleIds") List<Long> roleIds){
return rolePrivilegeExtMapper.findByRoleIds(roleIds);
}
}
......@@ -25,4 +25,9 @@ public class RoleRepositoryImpl extends BaseDao implements IRoleRepository {
public int insert(Role record) {
return roleMapper.insert(record);
}
@Override
public List<Role> selectByIds(List<Long> ids) {
return roleExtMapper.findRolesByIds(ids);
}
}
......
......@@ -5,10 +5,7 @@ import com.fedex.connect.common.dependencies.i18n.LocaleMessageUtil;
import com.fedex.connect.common.dependencies.util.ResponseUtils;
import com.fedex.connect.manager.repository.repo.bi.IDicEntriesRepository;
import com.fedex.connect.manager.repository.repo.log.IUserLoginLogRepository;
import com.fedex.connect.manager.repository.repo.sys.IRedisSlabRepository;
import com.fedex.connect.manager.repository.repo.sys.IRoleRepository;
import com.fedex.connect.manager.repository.repo.sys.IUserRepository;
import com.fedex.connect.manager.repository.repo.sys.IUserRoleRepository;
import com.fedex.connect.manager.repository.repo.sys.*;
import org.springframework.beans.factory.annotation.Autowired;
import javax.annotation.Resource;
......@@ -36,4 +33,8 @@ public class BaseService {
public IUserRepository userRepository;
@Autowired
public IDicEntriesRepository dicEntriesRepository;
@Autowired
public IRolePrivilegeRepository rolePrivilegeRepository;
@Autowired
public IPrivilegeRepository privilegeRepository;
}
......
package com.fedex.connect.manager.service.sys;
import com.fedex.connect.common.dependencies.date.vo.ResponseVo;
public interface IPrivilegeService {
ResponseVo getPrivilegeByUserId(Long id);
}
package com.fedex.connect.manager.service.sys.impl;
import com.fedex.connect.common.dependencies.contants.DatabaseConstants;
import com.fedex.connect.common.dependencies.date.vo.ResponseVo;
import com.fedex.connect.common.model.sys.Privilege;
import com.fedex.connect.common.model.sys.UserRole;
import com.fedex.connect.common.model.sys.UserRoleExample;
import com.fedex.connect.manager.service.base.BaseService;
import com.fedex.connect.manager.service.sys.IPrivilegeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.stream.Collectors;
@Service
@Slf4j
public class PrivilegeServiceImpl extends BaseService implements IPrivilegeService {
public ResponseVo getPrivilegeByUserId(Long id){
/**
* 获取到该用户的角色
*/
UserRoleExample example = new UserRoleExample();
UserRoleExample.Criteria criteria = example.createCriteria();
criteria.andStatusEqualTo(DatabaseConstants.GLOBAL_STATUS_VALID);
criteria.andUserIdEqualTo(id);
List<UserRole> userRoles = userRoleRepository.selectByExample(example);
/**
* 根据角色获取菜单权限
*/
if (!CollectionUtils.isEmpty(userRoles)){
List<Long> roleIds = userRoles.stream()
.map(UserRole::getRoleId) // 假设 UserRole 有 getRoleId 方法
.distinct() // 去重
.collect(Collectors.toList());
List<Long> byRoleIds = rolePrivilegeRepository.findByRoleIds(roleIds);
/**
* 获取权限
*/
List<Privilege> privilegesByIds = privilegeRepository.findPrivilegesByIds(byRoleIds);
return responseUtils.success(privilegesByIds);
}
return new ResponseVo();
}
}
......@@ -116,7 +116,7 @@ public class SysUserServiceImpl extends BaseService implements ISysUserService {
//当前阶段,权限采用默认权限
if (saveUserCt > 0){
Role roleInfo = sysRoleService.findRoleByCode(RoleEnum.CUSOTMER.getEnMsg());
Role roleInfo = sysRoleService.findRoleByCode(RoleEnum.CUSOTMER.getCode());
//创建用户角色对应关系
sysUserRoleService.save(user.getId(), roleInfo.getId());
}
......
......@@ -11,4 +11,7 @@ system_exception_10007=登录已过期,请重新登录
#******************业务相关、需要做国际化******************
business_exception_40001=存入token失败
business_log_40002=用户登录
system_exception_40003=系统异常,请联系清关部门
\ No newline at end of file
system_exception_40003=系统异常,请联系清关部门
system_exception_40004=登录已过期,请重新登录
system_exception_40005=用戶不存在
system_exception_40006=登录已过期
\ No newline at end of file
......
......@@ -11,4 +11,7 @@ system_exception_10007=登录已过期,请重新登录
#******************业务相关、需要做国际化******************
business_exception_40001=存入token失败
business_log_40002=用户登录
system_exception_40003=系统异常,请联系清关部门
\ No newline at end of file
system_exception_40003=系统异常,请联系清关部门
system_exception_40004=登录已过期,请重新登录
system_exception_40005=用戶不存在
system_exception_40006=登录已过期
\ No newline at end of file
......