From aaea4819b873c5ca7b9be1a87af173ee2015a12a Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期四, 25 一月 2024 14:52:24 +0800 Subject: [PATCH] 开发业务接口 --- server/service/src/main/java/com/doumee/config/shiro/ShiroRealm.java | 62 +++++++++++++++++++++---------- 1 files changed, 42 insertions(+), 20 deletions(-) diff --git a/server/company/src/main/java/com/doumee/config/shiro/ShiroRealm.java b/server/service/src/main/java/com/doumee/config/shiro/ShiroRealm.java similarity index 71% rename from server/company/src/main/java/com/doumee/config/shiro/ShiroRealm.java rename to server/service/src/main/java/com/doumee/config/shiro/ShiroRealm.java index 64a8776..10bcf6d 100644 --- a/server/company/src/main/java/com/doumee/config/shiro/ShiroRealm.java +++ b/server/service/src/main/java/com/doumee/config/shiro/ShiroRealm.java @@ -4,12 +4,13 @@ import com.doumee.core.exception.BusinessException; import com.doumee.core.model.LoginUserInfo; import com.doumee.core.utils.Constants; -import com.doumee.core.utils.DateUtil; import com.doumee.dao.business.model.Company; +import com.doumee.dao.business.model.CompanyPermission; import com.doumee.dao.system.model.SystemPermission; import com.doumee.dao.system.model.SystemRole; import com.doumee.dao.system.model.SystemUser; -import com.doumee.service.business.CompanyService; +import com.doumee.service.business.CompanyPermissionService; +import com.doumee.service.business.impl.CompanyServiceImpl; import com.doumee.service.system.SystemDataPermissionService; import com.doumee.service.system.SystemPermissionService; import com.doumee.service.system.SystemRoleService; @@ -26,7 +27,7 @@ import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; -import java.util.Date; +import java.util.ArrayList; import java.util.List; /** @@ -43,6 +44,12 @@ @Lazy @Autowired private SystemUserService systemUserService; + @Lazy + @Autowired + private CompanyPermissionService companyPermissionService; + @Lazy + @Autowired + private CompanyServiceImpl companyService; @Lazy @Autowired @@ -51,10 +58,6 @@ @Lazy @Autowired private SystemPermissionService systemPermissionService; - - @Lazy - @Autowired - private CompanyService companyService; /** * 鏉冮檺澶勭悊 @@ -77,34 +80,53 @@ * @date 2022/03/15 09:54 */ @Override - protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException{ + protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException { // 鑾峰彇鐢ㄦ埛鍚� + ShiroToken authenticationToken = (ShiroToken)token; String username = authenticationToken.getPrincipal().toString(); // 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴峰璞� SystemUser queryDto = new SystemUser(); - queryDto.setUsername(username); + if(authenticationToken.isNeedPassword()){ + //璐﹀彿瀵嗙爜鐧诲綍 + queryDto.setUsername(username); + }else{ + //鎵嬫満鍙烽獙璇佺爜鐧诲綍 + queryDto.setMobile(username); + } + queryDto.setType(authenticationToken.getUserType()); queryDto.setDeleted(Boolean.FALSE); SystemUser user = systemUserService.findOne(queryDto); if(user == null){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璐﹀彿鎴栧瘑鐮佷笉姝g‘锛�"); - } - if(!Constants.equalsInteger(user.getType(),Constants.UserType.COMPANY.getKey())){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝闈炰紒涓氳处鎴疯韩浠斤紝鏃犳硶鐧诲綍璇ュ钩鍙帮紒锛�"); + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璐﹀彿淇℃伅涓嶆纭紒"); } if(!Constants.equalsInteger(user.getStatus(),Constants.ZERO)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璐﹀彿淇℃伅宸茶绂佺敤锛屽鏈夌枒闂鑱旂郴绯荤粺绠$悊鍛橈紒"); - } - if(!user.getType().equals(Constants.UserType.SYSTEM)){ - Company company = companyService.findById(user.getCompanyId()); - if(company.getStatus().equals(Constants.ONE)){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝浼佷笟淇℃伅宸茶绂佺敤锛屽鏈夌枒闂鑱旂郴绯荤粺绠$悊鍛橈紒"); - } - user.setCompany(company); } // 鑾峰彇鐧诲綍鐢ㄦ埛淇℃伅 List<SystemRole> roles = systemRoleService.findByUserId(user.getId()); List<SystemPermission> permissions = systemPermissionService.findByUserId(user.getId()); LoginUserInfo userInfo = LoginUserInfo.from(user, roles, permissions); + if(authenticationToken.getUserType() == 0){ + 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()); + } + } + }else{ + Company company = companyService.findById(user.getCompanyId()); + if(company == null){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝浼佷笟璐﹀彿淇℃伅涓嶆纭紒"); + } + user.setCompany(company); + } + // 楠岃瘉鐢ㄦ埛 return new SimpleAuthenticationInfo(userInfo, user.getPassword(), this.getName()); } -- Gitblit v1.9.3