From 731f121d4e3966dfcc0f122542f489c225489702 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 11 六月 2025 18:27:35 +0800
Subject: [PATCH] 提交一把订单
---
server/service/src/main/java/com/doumee/config/shiro/ShiroRealm.java | 80 ++++++++++++++++++++++++++++++++-------
1 files changed, 65 insertions(+), 15 deletions(-)
diff --git a/server/service/src/main/java/com/doumee/config/shiro/ShiroRealm.java b/server/service/src/main/java/com/doumee/config/shiro/ShiroRealm.java
index bab1c58..9c9af4b 100644
--- a/server/service/src/main/java/com/doumee/config/shiro/ShiroRealm.java
+++ b/server/service/src/main/java/com/doumee/config/shiro/ShiroRealm.java
@@ -4,8 +4,11 @@
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.CompanyPermissionMapper;
+import com.doumee.dao.business.join.CompanyPermissionJoinMapper;
import com.doumee.dao.business.model.Company;
import com.doumee.dao.business.model.CompanyPermission;
+import com.doumee.dao.system.model.SystemDataPermission;
import com.doumee.dao.system.model.SystemPermission;
import com.doumee.dao.system.model.SystemRole;
import com.doumee.dao.system.model.SystemUser;
@@ -15,6 +18,7 @@
import com.doumee.service.system.SystemPermissionService;
import com.doumee.service.system.SystemRoleService;
import com.doumee.service.system.SystemUserService;
+import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationInfo;
@@ -30,6 +34,7 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
/**
* 鑷畾涔塕ealm锛屽鐞嗚璇佸拰鏉冮檺
@@ -59,6 +64,7 @@
@Lazy
@Autowired
private SystemPermissionService systemPermissionService;
+
/**
* 鏉冮檺澶勭悊
@@ -108,26 +114,60 @@
// 鑾峰彇鐧诲綍鐢ㄦ埛淇℃伅
if(authenticationToken.getUserType() == 0){
roles = systemRoleService.findByUserId(user.getId());
- CompanyPermission c = new CompanyPermission();
- c.setUserId(user.getId());
- c.setIsdeleted(Constants.ZERO);
- List<CompanyPermission> pList = companyPermissionService.findList(c);
- if(pList!=null){
- for (CompanyPermission cc : pList){
- if(user.getCompanyIdList() == null){
- user.setCompanyIdList(new ArrayList<>());
- }
- user.getCompanyIdList().add(cc.getCompanyId());
- }
- }
- permissions = systemPermissionService.findByUserId(user.getId());
+ CompanyPermission c = new CompanyPermission();
+ c.setUserId(user.getId());
+ c.setIsdeleted(Constants.ZERO);
+ List<CompanyPermission> pList = companyPermissionService.findList(c);
+ if(pList!=null){
+ for (CompanyPermission cc : pList){
+ if(user.getCompanyIdList() == null){
+ user.setCompanyIdList(new ArrayList<>());
+ }
+ user.getCompanyIdList().add(cc.getCompanyId());
+ }
+ }
+ permissions = systemPermissionService.findByUserId(user.getId());
}else{
- Company company = companyService.findById(user.getCompanyId());
+ Integer selfCompanyId = user.getCompanyId();
+ Company company = companyService.findById(selfCompanyId);
if(company == null){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝浼佷笟璐﹀彿淇℃伅涓嶆纭紒");
}
user.setCompany(company);
- if(StringUtils.equals(company.getUsername(),user.getUsername())){
+ user.setShowCompany(company);
+ if(authenticationToken.getUserType() == 1){
+ List<CompanyPermission> pList = companyPermissionService.getUserCompanyPermission(user.getId());
+ //鍔犲叆鑷繁鐨勯粯璁や紒涓�
+ CompanyPermission companyPermission = new CompanyPermission();
+ companyPermission.setUserId(user.getId());
+ companyPermission.setCompanyId(company.getId());
+ companyPermission.setType(Constants.ONE);
+ companyPermission.setId(Constants.ONE);
+ companyPermission.setIsSelfCompany(Constants.ONE);
+ companyPermission.setIsShow(Constants.ONE);
+ companyPermission.setCompanyName(company.getName());
+ pList.add(companyPermission);
+ if(Objects.nonNull(authenticationToken.getCompanyId())){
+ for (CompanyPermission c:pList) {
+ if(Constants.equalsInteger(c.getCompanyId(),authenticationToken.getCompanyId())){
+ c.setIsShow(Constants.ONE);
+ Company showCompany = companyService.findById(authenticationToken.getCompanyId());
+ user.setShowCompany(showCompany);
+ }else{
+ c.setIsShow(Constants.ZERO);
+ }
+ }
+ }
+ if(CollectionUtils.isNotEmpty(pList)) {
+ user.setCompanyPermissionList(pList);
+ }
+ }
+ //濡傛灉鐢ㄦ埛涓庝紒涓氳秴绠¤处鍙风浉鍚� 鎴栬�� 浼佷笟涓婚敭涓庡綋鍓嶅垏鎹㈠悗鐨勪富閿笉鐩稿悓鏃� 缁欒秴绠℃潈闄�
+ if(StringUtils.equals(company.getUsername(),user.getUsername())
+ ||( Objects.nonNull(authenticationToken.getCompanyId()) && !Constants.equalsInteger(company.getId(),authenticationToken.getCompanyId()) )){
+ if(Objects.nonNull(authenticationToken.getCompanyId())){
+ user.setCompanyId(authenticationToken.getCompanyId());
+ }
//濡傛灉鏄秴绠★紝
SystemRole role = new SystemRole();
role.setType(Constants.ONE);
@@ -140,6 +180,16 @@
permissions = systemPermissionService.findByUserId(user.getId());
}
}
+
+ SystemRole rt = new SystemRole();
+ rt.setDeleted(Boolean.FALSE);
+ //鏁版嵁閮ㄩ棬鏉冮檺闆嗗悎
+ if(Constants.equalsInteger(user.getType(),Constants.ONE) && Constants.equalsInteger(user.getCompany().getId(),user.getCompanyId())){
+ user.setDepartIdList(null);
+ }else{
+ user.setDepartIdList(systemDataPermissionService.selectHighRole(new SystemDataPermission(),rt,user));
+ }
+
LoginUserInfo userInfo = LoginUserInfo.from(user, roles, permissions);
// 楠岃瘉鐢ㄦ埛
return new SimpleAuthenticationInfo(userInfo, user.getPassword(), this.getName());
--
Gitblit v1.9.3