From c794562fa46e7e7610fb6f81fabd11c677d9a4d7 Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Tue, 26 Mar 2024 20:05:52 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/api/domain/SysUser.java | 34 +++++++++++++ .../system/api/model/LoginUser.java | 10 ---- .../auth/controller/TokenController.java | 50 ++++++++++++------- .../auth/service/SysLoginService.java | 3 +- .../common/core/constant/Constant.java | 7 +++ .../interceptor/ParamSecureHandler.java | 2 +- .../system/controller/LoginController.java | 21 ++++++-- .../system/mapper/LoginMapper.java | 12 +++++ .../system/service/LoginService.java | 12 +++++ .../system/service/LoginServiceImpl.java | 12 +++++ .../src/main/resources/mapper/LoginMapper.xml | 30 ++++++++++- 11 files changed, 157 insertions(+), 36 deletions(-) diff --git a/securitycontrol-api/securitycontrol-api-system/src/main/java/com/securitycontrol/system/api/domain/SysUser.java b/securitycontrol-api/securitycontrol-api-system/src/main/java/com/securitycontrol/system/api/domain/SysUser.java index ac8362c..dd02b30 100644 --- a/securitycontrol-api/securitycontrol-api-system/src/main/java/com/securitycontrol/system/api/domain/SysUser.java +++ b/securitycontrol-api/securitycontrol-api-system/src/main/java/com/securitycontrol/system/api/domain/SysUser.java @@ -5,6 +5,8 @@ import java.util.List; import javax.validation.constraints.*; import com.securitycontrol.system.api.domain.decision.SysMenu; +import com.securitycontrol.system.api.model.BidProVo; +import io.swagger.annotations.ApiModelProperty; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -104,6 +106,14 @@ public class SysUser extends BaseEntity { * */ private String iscUserId; + @ApiModelProperty("用户绑定标段工程") + private List bidProVoList; + + @ApiModelProperty("跳转页面类型") + private String jumpType; + + @ApiModelProperty("角色编码") + private String roleCode; public String getIsAdmin() { return isAdmin; @@ -418,6 +428,30 @@ public class SysUser extends BaseEntity { this.iscUserId = iscUserId; } + public List getBidProVoList() { + return bidProVoList; + } + + public void setBidProVoList(List bidProVoList) { + this.bidProVoList = bidProVoList; + } + + public String getJumpType() { + return jumpType; + } + + public void setJumpType(String jumpType) { + this.jumpType = jumpType; + } + + public String getRoleCode() { + return roleCode; + } + + public void setRoleCode(String roleCode) { + this.roleCode = roleCode; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/securitycontrol-api/securitycontrol-api-system/src/main/java/com/securitycontrol/system/api/model/LoginUser.java b/securitycontrol-api/securitycontrol-api-system/src/main/java/com/securitycontrol/system/api/model/LoginUser.java index 24b38a1..3d8d368 100644 --- a/securitycontrol-api/securitycontrol-api-system/src/main/java/com/securitycontrol/system/api/model/LoginUser.java +++ b/securitycontrol-api/securitycontrol-api-system/src/main/java/com/securitycontrol/system/api/model/LoginUser.java @@ -68,9 +68,6 @@ public class LoginUser implements Serializable * */ private String iscUserId; - @ApiModelProperty("用户绑定标段工程") - @JsonInclude(JsonInclude.Include.NON_EMPTY) - private List bidProVoList; public static long getserialversionuid() { return serialVersionUID; @@ -176,11 +173,4 @@ public class LoginUser implements Serializable this.iscUserId = iscUserId; } - public List getBidProVoList() { - return bidProVoList; - } - - public void setBidProVoList(List bidProVoList) { - this.bidProVoList = bidProVoList; - } } diff --git a/securitycontrol-auth/src/main/java/com/securitycontrol/auth/controller/TokenController.java b/securitycontrol-auth/src/main/java/com/securitycontrol/auth/controller/TokenController.java index 1c87300..c704ccf 100644 --- a/securitycontrol-auth/src/main/java/com/securitycontrol/auth/controller/TokenController.java +++ b/securitycontrol-auth/src/main/java/com/securitycontrol/auth/controller/TokenController.java @@ -10,18 +10,20 @@ import com.securitycontrol.common.core.utils.JwtUtils; import com.securitycontrol.common.redis.service.RedisService; import com.securitycontrol.common.security.service.TokenService; import com.securitycontrol.common.security.utils.SecurityUtils; -import com.securitycontrol.system.api.domain.SysUser; -import com.securitycontrol.system.api.domain.decision.SysMenu; import com.securitycontrol.system.api.model.LoginUser; import io.jsonwebtoken.Claims; import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import java.util.List; +import java.util.HashMap; +import java.util.Map; /** * token 控制 @@ -44,17 +46,17 @@ public class TokenController { private SysRecordLogService recordLogService; - @PostMapping("login") public Result login(@RequestBody LoginBody form) { - LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword(),form.getLoginType(),null); + LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword(), form.getLoginType(), null); // 获取登录token - return Result.ok(tokenService.createToken(userInfo),"登录成功"); + return Result.ok(tokenService.createToken(userInfo), "登录成功"); } /** * 本地推出登录 + * * @param request * @return */ @@ -65,21 +67,35 @@ public class TokenController { Integer userId = (Integer) claims.get(SecurityConstants.DETAILS_USER_ID); String iscUser = (String) claims.get(SecurityConstants.DETAILS_ISC_USER_ID); String userName = (String) claims.get(SecurityConstants.DETAILS_USERNAME); - recordLogService.recordLogininfor(userName,Long.valueOf(userId + ""),"用户登出",null,2); + recordLogService.recordLogininfor(userName, Long.valueOf(userId + ""), "用户登出", null, 2); redisUtil.delete("token:" + jwtToken); redisUtil.delete("userId:" + userId); redisUtil.delete("ISCUserId:" + iscUser); redisUtil.delete("userName:" + userName); - return Result.ok(null,"登出成功"); + return Result.ok(null, "登出成功"); } - - - - - - - - + /** + * @param request + * @return Result + * @description 省侧大屏跳转施工大屏 调用后台返回用户信息 + * @author cwchen + * @date 2024/3/26 18:10 + */ + @GetMapping("pageJump") + public Result pageJump(HttpServletRequest request) { + Map map = new HashMap<>(2); + try { + String jwtToken = SecurityUtils.getToken(request); + LoginUser loginUser = SecurityUtils.getLoginUser(); + // 获取登录token + map.put("us", loginUser); + map.put("access_token", jwtToken); + return Result.ok(map, "校验成功"); + } catch (Exception e) { + log.error("省侧大屏跳转施工大屏 用户数据获取", e); + return Result.fail("校验失败"); + } + } } diff --git a/securitycontrol-auth/src/main/java/com/securitycontrol/auth/service/SysLoginService.java b/securitycontrol-auth/src/main/java/com/securitycontrol/auth/service/SysLoginService.java index 650e76c..2164e7c 100644 --- a/securitycontrol-auth/src/main/java/com/securitycontrol/auth/service/SysLoginService.java +++ b/securitycontrol-auth/src/main/java/com/securitycontrol/auth/service/SysLoginService.java @@ -75,6 +75,7 @@ public class SysLoginService passwordService.validate(user, password); Result> menu = remoteUserService.getAllMenuList(user.getUserId()+"", SecurityConstants.INNER); list = handleMenuList(menu.getData(),loginType); + user.setJumpType(loginType); userInfo.getSysUser().setMenus(list); recordLogService.recordLogininfor(username,null, "用户登录", null,1); remoteUserService.updateUserLogin(user.getUserId(),SecurityConstants.INNER); @@ -91,7 +92,7 @@ public class SysLoginService return list; } // 施工大屏菜单权限 - if (Objects.equals(loginType, Constant.SG_SCREEN)) { + if (Objects.equals(loginType, Constant.SG_SCREEN) || Objects.equals(loginType, Constant.SC_SCREEN)) { list = list.stream().filter(e -> Objects.equals(e.getMenuName(),Constant.SG_SCREEN_NAME)).collect(Collectors.toList()); } else { // 后台菜单权限 diff --git a/securitycontrol-commons/securitycontrol-commons-core/src/main/java/com/securitycontrol/common/core/constant/Constant.java b/securitycontrol-commons/securitycontrol-commons-core/src/main/java/com/securitycontrol/common/core/constant/Constant.java index 66f7232..cc1bff8 100644 --- a/securitycontrol-commons/securitycontrol-commons-core/src/main/java/com/securitycontrol/common/core/constant/Constant.java +++ b/securitycontrol-commons/securitycontrol-commons-core/src/main/java/com/securitycontrol/common/core/constant/Constant.java @@ -37,6 +37,13 @@ public class Constant { public final static String SG_SCREEN = "2"; public final static String SG_SCREEN_NAME = "施工大屏"; + public final static String SC_SCREEN = "1"; + public final static String SC_SCREEN_NAME = "省侧大屏"; + public final static String ADMINISTRATORS = "administrators"; + public final static String MANAGER = "manager"; + public final static String DUTY = "duty"; + public final static String CITY = "city"; + public final static String[] BUILD_ARR = {"12A0,合肥","12B0,马鞍山","12C0,芜湖","12D0,安庆","12F0,淮南", diff --git a/securitycontrol-commons/securitycontrol-commons-security/src/main/java/com/securitycontrol/common/security/interceptor/ParamSecureHandler.java b/securitycontrol-commons/securitycontrol-commons-security/src/main/java/com/securitycontrol/common/security/interceptor/ParamSecureHandler.java index 1a938a8..cbb747e 100644 --- a/securitycontrol-commons/securitycontrol-commons-security/src/main/java/com/securitycontrol/common/security/interceptor/ParamSecureHandler.java +++ b/securitycontrol-commons/securitycontrol-commons-security/src/main/java/com/securitycontrol/common/security/interceptor/ParamSecureHandler.java @@ -61,7 +61,7 @@ public class ParamSecureHandler implements AsyncHandlerInterceptor { // IResourceService resourceService = (IResourceService) AdapterFactory.getInstance(Constants.CLASS_RESOURCE); - public static final String[] EXCLUDE_URLS = {"/sys/pro/addPro","/sys/pro/editPro","/sys/pro/importProData","/back/personnel/addPersonnel","/back/personnel/editPersonnel"}; + public static final String[] EXCLUDE_URLS = {"/sys/pro/addPro","/sys/pro/editPro","/sys/pro/importProData","/back/personnel/addPersonnel","/back/personnel/editPersonnel","/pageJump"}; public boolean isFileUpload(HttpServletRequest request) { for (String excludeUrl : EXCLUDE_URLS) { diff --git a/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/controller/LoginController.java b/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/controller/LoginController.java index 547d199..23fa87a 100644 --- a/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/controller/LoginController.java +++ b/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/controller/LoginController.java @@ -1,5 +1,6 @@ package com.securitycontrol.system.controller; +import com.securitycontrol.common.core.constant.Constant; import com.securitycontrol.common.core.domain.Result; import com.securitycontrol.common.core.utils.ServletUtils; import com.securitycontrol.common.core.utils.StringUtils; @@ -7,15 +8,13 @@ import com.securitycontrol.common.core.utils.ip.IpUtils; import com.securitycontrol.common.security.annotation.InnerAuth; import com.securitycontrol.system.api.domain.SysUser; import com.securitycontrol.system.api.domain.decision.SysMenu; +import com.securitycontrol.system.api.model.BidProVo; import com.securitycontrol.system.api.model.LoginUser; import com.securitycontrol.system.service.LoginService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import java.util.*; /** * 系统用户登录 @@ -49,11 +48,23 @@ public class LoginController { // 权限集合 Set permissions = service.getMenuPermission(sysUser); // 用户绑定标段工程 -// service.getUserBandingBidPro(); + String roleCode = sysUser.getRoleCode(); + List bidProVoList = null; + if(Objects.equals(roleCode, Constant.ADMINISTRATORS)){ + // 管理员 + bidProVoList = service.getUserBandingBidPro(null,1); + }else if(Objects.equals(roleCode, Constant.MANAGER)){ + // 施工项目经理 + bidProVoList = service.getUserBandingBidPro(String.valueOf(sysUser.getUserId()),2); + }else if(Objects.equals(roleCode, Constant.CITY)){ + // 地市值班员 + bidProVoList = service.getUserBandingBidPro(sysUser.getOrgId(),3); + } LoginUser sysUserVo = new LoginUser(); sysUserVo.setSysUser(sysUser); sysUserVo.setRoles(roles); sysUserVo.setPermissions(permissions); + sysUser.setBidProVoList(bidProVoList); return Result.ok(sysUserVo); } diff --git a/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/mapper/LoginMapper.java b/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/mapper/LoginMapper.java index aea9f20..fb0ff92 100644 --- a/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/mapper/LoginMapper.java +++ b/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/mapper/LoginMapper.java @@ -2,6 +2,7 @@ package com.securitycontrol.system.mapper; import com.securitycontrol.system.api.domain.SysUser; import com.securitycontrol.system.api.domain.decision.SysMenu; +import com.securitycontrol.system.api.model.BidProVo; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -48,4 +49,15 @@ public interface LoginMapper { * @param ip */ void updateUserLogin(@Param("userId") String userId, @Param("ip") String ip); + + /** + * 获取用户绑定的标段工程 + * @param param + * @param type + * @return List + * @description + * @author cwchen + * @date 2024/3/26 10:20 + */ + List getUserBandingBidPro(@Param("param") String param,@Param("type") int type); } diff --git a/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/service/LoginService.java b/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/service/LoginService.java index 9f6c2bc..d1656b2 100644 --- a/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/service/LoginService.java +++ b/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/service/LoginService.java @@ -2,6 +2,7 @@ package com.securitycontrol.system.service; import com.securitycontrol.system.api.domain.SysUser; import com.securitycontrol.system.api.domain.decision.SysMenu; +import com.securitycontrol.system.api.model.BidProVo; import java.util.List; import java.util.Set; @@ -44,4 +45,15 @@ public interface LoginService { * @param ip */ void updateUserLogin(String userId, String ip); + + /** + * 获取用户绑定的标段工程 + * @param param + * @param type + * @return List + * @description + * @author cwchen + * @date 2024/3/26 10:18 + */ + List getUserBandingBidPro(String param,int type); } diff --git a/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/service/LoginServiceImpl.java b/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/service/LoginServiceImpl.java index 553e9f9..f708573 100644 --- a/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/service/LoginServiceImpl.java +++ b/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/service/LoginServiceImpl.java @@ -2,6 +2,7 @@ package com.securitycontrol.system.service; import com.securitycontrol.system.api.domain.SysUser; import com.securitycontrol.system.api.domain.decision.SysMenu; +import com.securitycontrol.system.api.model.BidProVo; import com.securitycontrol.system.mapper.LoginMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -85,4 +86,15 @@ public class LoginServiceImpl implements LoginService { } } } + + @Override + public List getUserBandingBidPro(String param,int type) { + List list = new ArrayList<>(); + try { + list = mapper.getUserBandingBidPro(param,type); + } catch (Exception e) { + log.error("获取用户绑定标段工程",e); + } + return list; + } } diff --git a/securitycontrol-model/securitycontrol-system/src/main/resources/mapper/LoginMapper.xml b/securitycontrol-model/securitycontrol-system/src/main/resources/mapper/LoginMapper.xml index ad22f45..b4ceec2 100644 --- a/securitycontrol-model/securitycontrol-system/src/main/resources/mapper/LoginMapper.xml +++ b/securitycontrol-model/securitycontrol-system/src/main/resources/mapper/LoginMapper.xml @@ -10,10 +10,12 @@ @@ -33,4 +35,28 @@ ORDER BY sm.menu_sort ASC + + \ No newline at end of file