Browse Source

修改框架, 登录查询权限需要切到从库 患者、就诊、测评、报告单四个列表添加权限查询

master-admin
ccsens_zhengzhichuan 1 week ago
parent
commit
a604f060f1
  1. 4
      ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/datasource/DataSourceManager.java
  2. 3
      ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/web/service/SysLoginService.java
  3. 2
      ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/web/service/SysPermissionService.java
  4. 7
      ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/web/service/UserDetailsServiceImpl.java
  5. 4
      ruisi_java/ruisi-web-admin/src/main/java/com/ccsens/admin/service/impl/PmsPatientServiceImpl.java
  6. 6
      ruisi_java/ruisi-web-admin/src/main/java/com/ccsens/admin/service/impl/RmsServiceImpl.java

4
ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/datasource/DataSourceManager.java

@ -48,4 +48,8 @@ public class DataSourceManager {
public static void setDataSourceKey(String key) {
DynamicDataSourceContextHolder.setDataSourceType(key);
}
public static void clearDataSourceKey() {
DynamicDataSourceContextHolder.clearDataSourceType();
}
}

3
ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/web/service/SysLoginService.java

@ -5,6 +5,7 @@ import javax.annotation.Resource;
import cn.hutool.core.collection.CollectionUtil;
import com.ccsens.common.constant.ErrorConstant;
import com.ccsens.common.exception.base.BaseException;
import com.ccsens.common.utils.SecurityUtils;
import com.ccsens.framework.security.context.AuthenticationContextHolder;
import com.ccsens.framework.security.token.PhoneAuthenticationToken;
import org.springframework.beans.factory.annotation.Autowired;
@ -134,7 +135,7 @@ public class SysLoginService {
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"),null));
LoginUser loginUser = (LoginUser) authentication.getPrincipal();
//非总测评师不能登录
if (CollectionUtil.isEmpty(loginUser.getUser().getRoles()) || !loginUser.getUser().getRoles().stream().map(e -> e.getRoleKey()).collect(Collectors.toList()).contains("yy_zcps")) {
if (!SecurityUtils.isAdmin(loginUser.getUserId()) && (CollectionUtil.isEmpty(loginUser.getUser().getRoles()) || !loginUser.getUser().getRoles().stream().map(e -> e.getRoleKey()).collect(Collectors.toList()).contains("yy_zcps"))) {
throw new BaseException(ErrorConstant.USER_NO_PERMISSION);
}
recordLoginInfo(loginUser.getUserId());

2
ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/web/service/SysPermissionService.java

@ -55,7 +55,7 @@ public class SysPermissionService {
perms.add("*:*:*");
} else {
List<SysRole> roles = user.getRoles();
if (!roles.isEmpty() && roles.size() > 1) {
if (!roles.isEmpty()) {
// 多角色设置permissions属性,以便数据权限匹配权限
for (SysRole role : roles) {
Set<String> rolePerms = menuService.selectMenuPermsByRoleId(role.getRoleId(), clientType);

7
ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/web/service/UserDetailsServiceImpl.java

@ -7,6 +7,8 @@ import com.ccsens.common.enums.UserStatus;
import com.ccsens.common.exception.ServiceException;
import com.ccsens.common.utils.ServletUtils;
import com.ccsens.common.utils.StringUtils;
import com.ccsens.framework.datasource.DataSourceManager;
import com.ccsens.framework.datasource.DynamicDataSource;
import com.ccsens.system.service.ISysUserService;
import com.ccsens.system.service.IUmsDeviceService;
import org.slf4j.Logger;
@ -101,6 +103,9 @@ public class UserDetailsServiceImpl implements UserDetailsService {
}
public UserDetails createLoginUser(SysUser user) {
return new LoginUser(user.getUserId(), user.getDeptId(), user.getHospitalId(), user, permissionService.getMenuPermission(user));
DataSourceManager.setDataSourceKey(user.getDataSourceKey());
LoginUser loginUser = new LoginUser(user.getUserId(), user.getDeptId(), user.getHospitalId(), user, permissionService.getMenuPermission(user));
DataSourceManager.clearDataSourceKey();
return loginUser;
}
}

4
ruisi_java/ruisi-web-admin/src/main/java/com/ccsens/admin/service/impl/PmsPatientServiceImpl.java

@ -107,7 +107,7 @@ public class PmsPatientServiceImpl implements IPmsPatientService {
String hash = Md5Utils.hash(param.getIdCard().substring(2, 14));
param.setIdCard(param.getIdCard().substring(0, 2) + hash + param.getIdCard().substring(14, 18));
}
return patientDao.queryPatientList(param, dataScope, userId, userName);
return patientDao.queryPatientList(param, dataScope, SecurityUtils.isAdmin(userId) ? null : userId, userName);
}
@Override
@ -2150,7 +2150,7 @@ public class PmsPatientServiceImpl implements IPmsPatientService {
@Override
public List<PmsPatientVo.QueryPatientJz> queryPatientJzList(PmsPatientDto.QueryPatientJz param, String dataScope, Long userId, String userName) {
List<PmsPatientVo.QueryPatientJz> queryPatientJzs = patientDao.queryPatientJzList(param, dataScope, userId, userName);
List<PmsPatientVo.QueryPatientJz> queryPatientJzs = patientDao.queryPatientJzList(param, dataScope, SecurityUtils.isAdmin(userId) ? null : userId, userName);
if (CollUtil.isNotEmpty(queryPatientJzs)) {
for (PmsPatientVo.QueryPatientJz queryPatientJz : queryPatientJzs) {
//查询就诊

6
ruisi_java/ruisi-web-admin/src/main/java/com/ccsens/admin/service/impl/RmsServiceImpl.java

@ -1298,7 +1298,7 @@ public class RmsServiceImpl implements IRmsService {
@Override
public List<RmsVo.QueryReportHistoryPatient> queryReportListCopyClient(RmsDto.QueryReportList dto, Long userId, String dataScope) {
return rmsDao.queryReportListCopyClient(dto, userId, SecurityUtils.getUsername(), dataScope);
return rmsDao.queryReportListCopyClient(dto, SecurityUtils.isAdmin(userId) ? null : userId, SecurityUtils.getUsername(), dataScope);
}
@Override
@ -1726,12 +1726,12 @@ public class RmsServiceImpl implements IRmsService {
@Override
public List<RmsVo.Report> queryReportList(RmsDto.ReportQuery param, Long userId) {
return rmsDao.queryReport(param, userId);
return rmsDao.queryReport(param, SecurityUtils.isAdmin(userId) ? null : userId);
}
@Override
public void exportEvaluation(RmsDto.ReportQuery param, HttpServletResponse response) throws IOException {
List<RmsVo.Report> reports = queryReportList(param, null);
List<RmsVo.Report> reports = queryReportList(param, SecurityUtils.isAdmin(SecurityUtils.getUserId()) ? null : SecurityUtils.getUserId());
if (CollUtil.isEmpty(reports)) {
return;
}

Loading…
Cancel
Save