Compare commits

...

3 Commits
master ... dev

Author SHA1 Message Date
zhoukaihong@idcos.com 20e9b36acb 修改上传地址 1 month ago
zhoukaihong@idcos.com da95c7ff96 用户和报表里面增加机构代码和机构序号字段和查询 2 months ago
周开红 d2fcdc6485 新增直接登录接口 2 months ago
  1. 47
      src/main/java/com/anjiplus/template/gaea/business/enums/SourceFlagEnum.java
  2. 10
      src/main/java/com/anjiplus/template/gaea/business/modules/accessuser/controller/AccessUserController.java
  3. 9
      src/main/java/com/anjiplus/template/gaea/business/modules/accessuser/controller/dto/GaeaUserDto.java
  4. 8
      src/main/java/com/anjiplus/template/gaea/business/modules/accessuser/dao/entity/AccessUser.java
  5. 2
      src/main/java/com/anjiplus/template/gaea/business/modules/accessuser/service/AccessUserService.java
  6. 90
      src/main/java/com/anjiplus/template/gaea/business/modules/accessuser/service/impl/AccessUserServiceImpl.java
  7. 8
      src/main/java/com/anjiplus/template/gaea/business/modules/report/controller/dto/ReportDto.java
  8. 10
      src/main/java/com/anjiplus/template/gaea/business/modules/report/controller/param/ReportParam.java
  9. 9
      src/main/java/com/anjiplus/template/gaea/business/modules/report/dao/entity/Report.java
  10. 5
      src/main/resources/bootstrap.yml

47
src/main/java/com/anjiplus/template/gaea/business/enums/SourceFlagEnum.java

@ -0,0 +1,47 @@
package com.anjiplus.template.gaea.business.enums;
public enum SourceFlagEnum {
YYJH(1,"机构养老"),
JJYL(2,"居家"),
;
private int codeValue;
private String codeDesc;
private SourceFlagEnum(int codeValue, String codeDesc) {
this.codeValue = codeValue;
this.codeDesc = codeDesc;
}
public int getCodeValue(){ return this.codeValue;}
public String getCodeDesc(){ return this.codeDesc;}
//根据codeValue获取枚举
public static SourceFlagEnum parseFromCodeValue(int codeValue){
for (SourceFlagEnum e : SourceFlagEnum.values()){
if(e.codeValue == codeValue){ return e;}
}
return null;
}
//根据codeValue获取描述
public static String getCodeDescByCodeValue(int codeValue){
SourceFlagEnum enumItem = parseFromCodeValue(codeValue);
return enumItem == null ? "" : enumItem.getCodeDesc();
}
//验证codeValue是否有效
public static boolean validateCodeValue(int codeValue){ return parseFromCodeValue(codeValue)!=null;}
//列出所有值字符串
public static String getString(){
StringBuffer buffer = new StringBuffer();
for (SourceFlagEnum e : SourceFlagEnum.values()){
buffer.append(e.codeValue).append("--").append(e.getCodeDesc()).append(", ");
}
buffer.deleteCharAt(buffer.lastIndexOf(","));
return buffer.toString().trim();
}
}

10
src/main/java/com/anjiplus/template/gaea/business/modules/accessuser/controller/AccessUserController.java

@ -99,6 +99,16 @@ public class AccessUserController extends GaeaBaseController<AccessUserParam, Ac
}
/**
* 简单实现直接登录,用于兼容
* @param dto
* @return
*/
@PostMapping({"/directLogin"})
public ResponseBean directLogin(@RequestBody @Validated GaeaUserDto dto) {
return responseSuccessWithData(accessUserService.directLogin(dto));
}
/**
* 修改自己的密码
* @param dto
* @return

9
src/main/java/com/anjiplus/template/gaea/business/modules/accessuser/controller/dto/GaeaUserDto.java

@ -24,4 +24,13 @@ public class GaeaUserDto {
/** 用户所拥有的权限合集 */
private List<String> authorities;
/** 机构代码 */
private String jgdm;
/** 机构序号 */
private String jgxh;
/** 1--机构养老 2--居家 DIC_NAME=SOURCE_FLAG */
private Integer source;
}

8
src/main/java/com/anjiplus/template/gaea/business/modules/accessuser/dao/entity/AccessUser.java

@ -45,4 +45,12 @@ public class AccessUser extends GaeaBaseEntity {
/** 最后一次登陆时间 */
private Date lastLoginTime;
/** 机构代码 */
private String jgdm;
/** 机构序号 */
private String jgxh;
/** 1--机构养老 2--居家 DIC_NAME=SOURCE_FLAG */
private Integer source;
}

2
src/main/java/com/anjiplus/template/gaea/business/modules/accessuser/service/AccessUserService.java

@ -43,6 +43,8 @@ public interface AccessUserService extends GaeaBaseService<AccessUserParam, Acce
*/
GaeaUserDto login(GaeaUserDto gaeaUserDto);
GaeaUserDto directLogin(GaeaUserDto gaeaUserDto);
/**
* 修改密码
* @param dto

90
src/main/java/com/anjiplus/template/gaea/business/modules/accessuser/service/impl/AccessUserServiceImpl.java

@ -14,6 +14,8 @@ import com.anji.plus.gaea.utils.GaeaUtils;
import com.anji.plus.gaea.utils.JwtBean;
import com.anjiplus.template.gaea.business.code.ResponseCode;
import com.anjiplus.template.gaea.business.constant.BusinessConstant;
import com.anjiplus.template.gaea.business.enums.DeleteFlagEnum;
import com.anjiplus.template.gaea.business.enums.EnableFlagEnum;
import com.anjiplus.template.gaea.business.modules.accessrole.dao.AccessRoleAuthorityMapper;
import com.anjiplus.template.gaea.business.modules.accessrole.dao.AccessRoleMapper;
import com.anjiplus.template.gaea.business.modules.accessrole.dao.entity.AccessRole;
@ -216,6 +218,94 @@ public class AccessUserServiceImpl implements AccessUserService {
return gaeaUser;
}
@Override
public GaeaUserDto directLogin(GaeaUserDto gaeaUserDto) {
String loginName = gaeaUserDto.getLoginName();
String password = gaeaUserDto.getPassword();
// 1.判断用户是否存在
LambdaQueryWrapper<AccessUser> wrapper = Wrappers.lambdaQuery();
wrapper.eq(AccessUser::getLoginName, loginName);
AccessUser accessUser = accessUserMapper.selectOne(wrapper);
if (null == accessUser) {
//没有用户,创建一个用户同时赋予默认角色
accessUser = new AccessUser();
accessUser.setLoginName(loginName);
accessUser.setRealName(loginName);
accessUser.setEnableFlag(EnableFlagEnum.ENABLE.getCodeValue());
accessUser.setDeleteFlag(DeleteFlagEnum.UNDELETED.getCodeValue());
accessUser.setCreateTime(new Date());
accessUser.setCreateBy(BusinessConstant.USER_ADMIN);
accessUser.setUpdateTime(new Date());
accessUser.setUpdateBy(BusinessConstant.USER_ADMIN);
accessUser.setVersion(1);
accessUser.setJgdm(gaeaUserDto.getJgdm());
accessUser.setJgxh(gaeaUserDto.getJgxh());
accessUser.setSource(gaeaUserDto.getSource());
insert(accessUser);
//创建用户角色
AccessUserDto accessUserDto = new AccessUserDto();
accessUserDto.setLoginName(loginName);
//默认是报表角色
accessUserDto.setRoleCodeList(Arrays.asList("excel-report"));
saveRoleTree(accessUserDto);
}
// 2.密码错误
if (!accessUser.getPassword().equals(MD5Util.encrypt(password))) {
throw BusinessExceptionBuilder.build(ResponseCode.USER_PASSWORD_ERROR);
}
// 3.如果该用户登录未过期这里允许一个用户在多个终端登录
String tokenKey = String.format(BusinessConstant.GAEA_SECURITY_LOGIN_TOKEN, loginName);
String token = "";
GaeaUserDto gaeaUser = new GaeaUserDto();
if (cacheHelper.exist(tokenKey)) {
token = cacheHelper.stringGet(tokenKey);
} else {
// 生成用户token
String uuid = GaeaUtils.UUID();
token = jwtBean.createToken(loginName, uuid, 0, GaeaConstant.TENANT_CODE);
cacheHelper.stringSetExpire(tokenKey, token, 3600);
}
// 4.读取用户最新人权限主信息
String userKey = String.format(BusinessConstant.GAEA_SECURITY_LOGIN_USER, loginName);
//为了兼容底层其他数据库不再写自定义sql
// List<String> authorities = accessUserMapper.queryAuthoritiesByLoginName(loginName);
//当前用户的roleCode集合
LambdaQueryWrapper<AccessUserRole> accessUserWrapper = Wrappers.lambdaQuery();
accessUserWrapper.select(AccessUserRole::getRoleCode);
accessUserWrapper.eq(AccessUserRole::getLoginName, loginName);
List<AccessUserRole> accessUserRoles = accessUserRoleMapper.selectList(accessUserWrapper);
Set<String> roleCodeSet = accessUserRoles.stream().map(AccessUserRole::getRoleCode).collect(Collectors.toSet());
if (roleCodeSet.size() < 1) {
gaeaUser.setAuthorities(new ArrayList<>());
}else {
LambdaQueryWrapper<AccessRoleAuthority> accessRoleAuthorityWrapper = Wrappers.lambdaQuery();
accessRoleAuthorityWrapper.select(AccessRoleAuthority::getTarget, AccessRoleAuthority::getAction);
accessRoleAuthorityWrapper.in(AccessRoleAuthority::getRoleCode, roleCodeSet);
List<AccessRoleAuthority> accessRoleAuthorities = accessRoleAuthorityMapper.selectList(accessRoleAuthorityWrapper);
List<String> authorities = accessRoleAuthorities.stream()
.map(accessRoleAuthority -> accessRoleAuthority.getTarget().concat(":").concat(accessRoleAuthority.getAction())).distinct().collect(Collectors.toList());
gaeaUser.setAuthorities(authorities);
}
gaeaUser.setLoginName(loginName);
gaeaUser.setRealName(accessUser.getRealName());
gaeaUser.setToken(token);
gaeaUser.setJgdm(accessUser.getJgdm());
gaeaUser.setJgxh(accessUser.getJgxh());
gaeaUser.setSource(accessUser.getSource());
String gaeaUserStr = JSONObject.toJSONString(gaeaUser);
cacheHelper.stringSetExpire(userKey, gaeaUserStr, 3600);
return gaeaUser;
}
/**
* 修改密码
*

8
src/main/java/com/anjiplus/template/gaea/business/modules/report/controller/dto/ReportDto.java

@ -56,4 +56,12 @@ public class ReportDto extends GaeaBaseDTO implements Serializable {
/** 下载次数 */
private Long downloadCount;
/** 机构代码 */
private String jgdm;
/** 机构序号 */
private String jgxh;
/** 1--机构养老 2--居家 DIC_NAME=SOURCE_FLAG */
private Integer source;
}

10
src/main/java/com/anjiplus/template/gaea/business/modules/report/controller/param/ReportParam.java

@ -32,5 +32,15 @@ public class ReportParam extends PageParam implements Serializable{
@Query(QueryEnum.EQ)
private String reportType;
/** 机构代码 */
@Query(QueryEnum.EQ)
private String jgdm;
/** 机构序号 */
@Query(QueryEnum.EQ)
private String jgxh;
/** 1--机构养老 2--居家 DIC_NAME=SOURCE_FLAG */
@Query(QueryEnum.EQ)
private Integer source;
}

9
src/main/java/com/anjiplus/template/gaea/business/modules/report/dao/entity/Report.java

@ -46,4 +46,13 @@ public class Report extends GaeaBaseEntity {
/** 0--未删除 1--已删除 DIC_NAME=DELETE_FLAG */
private Integer deleteFlag;
/** 机构代码 */
private String jgdm;
/** 机构序号 */
private String jgxh;
/** 1--机构养老 2--居家 DIC_NAME=SOURCE_FLAG */
private Integer source;
}

5
src/main/resources/bootstrap.yml

@ -92,7 +92,8 @@ spring:
##允许上传的文件后缀
file-type-white-list: .png|.jpg|.gif|.icon|.pdf|.xlsx|.xls|.csv|.mp4|.avi|.jpeg|.aaa|.svg
# 用于文件上传成功后,生成文件的下载公网完整URL,http://serverip:9095/file/download,注意填写IP必须填写后端服务所在的机器IP
downloadPath: http://127.0.0.1:9095/file/download
#downloadPath: http://127.0.0.1:9095/file/download
downloadPath: https://pay.yyjh66.com:9095/file/download
nfs:
#上传对应本地全路径,注意目录不会自动创建,注意 Win是 \ 且有盘符,linux是 / 无盘符,注意目录权限问题
path: /app/disk/upload/
@ -132,7 +133,7 @@ logging:
# 本应用自定义参数
customer:
# 跳过token验证和权限验证的url清单
skip-authenticate-urls: /gaeaDict/all, /login, /static, /file/download/, /index.html, /favicon.ico, /reportShare/detailByCode, /v2/api-docs, /reportExcel/exportExcel
skip-authenticate-urls: /gaeaDict/all, /login, /static, /file/download/, /index.html, /favicon.ico, /reportShare/detailByCode, /v2/api-docs, /reportExcel/exportExcel,/accessUser/directLogin
file:
#导入导出临时文件夹 默认.代表当前目录,拼接/tmp_zip/目录
tmpPath: .

Loading…
Cancel
Save