This commit is contained in:
cwchen 2024-03-26 20:05:52 +08:00
parent b46253ddff
commit c794562fa4
11 changed files with 157 additions and 36 deletions

View File

@ -5,6 +5,8 @@ import java.util.List;
import javax.validation.constraints.*; import javax.validation.constraints.*;
import com.securitycontrol.system.api.domain.decision.SysMenu; 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.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
@ -104,6 +106,14 @@ public class SysUser extends BaseEntity {
* */ * */
private String iscUserId; private String iscUserId;
@ApiModelProperty("用户绑定标段工程")
private List<BidProVo> bidProVoList;
@ApiModelProperty("跳转页面类型")
private String jumpType;
@ApiModelProperty("角色编码")
private String roleCode;
public String getIsAdmin() { public String getIsAdmin() {
return isAdmin; return isAdmin;
@ -418,6 +428,30 @@ public class SysUser extends BaseEntity {
this.iscUserId = iscUserId; this.iscUserId = iscUserId;
} }
public List<BidProVo> getBidProVoList() {
return bidProVoList;
}
public void setBidProVoList(List<BidProVo> 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 @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

View File

@ -68,9 +68,6 @@ public class LoginUser implements Serializable
* */ * */
private String iscUserId; private String iscUserId;
@ApiModelProperty("用户绑定标段工程")
@JsonInclude(JsonInclude.Include.NON_EMPTY)
private List<BidProVo> bidProVoList;
public static long getserialversionuid() { public static long getserialversionuid() {
return serialVersionUID; return serialVersionUID;
@ -176,11 +173,4 @@ public class LoginUser implements Serializable
this.iscUserId = iscUserId; this.iscUserId = iscUserId;
} }
public List<BidProVo> getBidProVoList() {
return bidProVoList;
}
public void setBidProVoList(List<BidProVo> bidProVoList) {
this.bidProVoList = bidProVoList;
}
} }

View File

@ -10,18 +10,20 @@ import com.securitycontrol.common.core.utils.JwtUtils;
import com.securitycontrol.common.redis.service.RedisService; import com.securitycontrol.common.redis.service.RedisService;
import com.securitycontrol.common.security.service.TokenService; import com.securitycontrol.common.security.service.TokenService;
import com.securitycontrol.common.security.utils.SecurityUtils; 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 com.securitycontrol.system.api.model.LoginUser;
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Claims;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; 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.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.List; import java.util.HashMap;
import java.util.Map;
/** /**
* token 控制 * token 控制
@ -44,7 +46,6 @@ public class TokenController {
private SysRecordLogService recordLogService; private SysRecordLogService recordLogService;
@PostMapping("login") @PostMapping("login")
public Result<?> login(@RequestBody LoginBody form) { 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);
@ -55,6 +56,7 @@ public class TokenController {
/** /**
* 本地推出登录 * 本地推出登录
*
* @param request * @param request
* @return * @return
*/ */
@ -73,13 +75,27 @@ public class TokenController {
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<String, Object> 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("校验失败");
}
}
} }

View File

@ -75,6 +75,7 @@ public class SysLoginService
passwordService.validate(user, password); passwordService.validate(user, password);
Result<List<SysMenu>> menu = remoteUserService.getAllMenuList(user.getUserId()+"", SecurityConstants.INNER); Result<List<SysMenu>> menu = remoteUserService.getAllMenuList(user.getUserId()+"", SecurityConstants.INNER);
list = handleMenuList(menu.getData(),loginType); list = handleMenuList(menu.getData(),loginType);
user.setJumpType(loginType);
userInfo.getSysUser().setMenus(list); userInfo.getSysUser().setMenus(list);
recordLogService.recordLogininfor(username,null, "用户登录", null,1); recordLogService.recordLogininfor(username,null, "用户登录", null,1);
remoteUserService.updateUserLogin(user.getUserId(),SecurityConstants.INNER); remoteUserService.updateUserLogin(user.getUserId(),SecurityConstants.INNER);
@ -91,7 +92,7 @@ public class SysLoginService
return list; 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()); list = list.stream().filter(e -> Objects.equals(e.getMenuName(),Constant.SG_SCREEN_NAME)).collect(Collectors.toList());
} else { } else {
// 后台菜单权限 // 后台菜单权限

View File

@ -37,6 +37,13 @@ public class Constant {
public final static String SG_SCREEN = "2"; public final static String SG_SCREEN = "2";
public final static String SG_SCREEN_NAME = "施工大屏"; 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,淮南", public final static String[] BUILD_ARR = {"12A0,合肥","12B0,马鞍山","12C0,芜湖","12D0,安庆","12F0,淮南",

View File

@ -61,7 +61,7 @@ public class ParamSecureHandler implements AsyncHandlerInterceptor {
// IResourceService resourceService = (IResourceService) AdapterFactory.getInstance(Constants.CLASS_RESOURCE); // 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) { public boolean isFileUpload(HttpServletRequest request) {
for (String excludeUrl : EXCLUDE_URLS) { for (String excludeUrl : EXCLUDE_URLS) {

View File

@ -1,5 +1,6 @@
package com.securitycontrol.system.controller; package com.securitycontrol.system.controller;
import com.securitycontrol.common.core.constant.Constant;
import com.securitycontrol.common.core.domain.Result; import com.securitycontrol.common.core.domain.Result;
import com.securitycontrol.common.core.utils.ServletUtils; import com.securitycontrol.common.core.utils.ServletUtils;
import com.securitycontrol.common.core.utils.StringUtils; 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.common.security.annotation.InnerAuth;
import com.securitycontrol.system.api.domain.SysUser; import com.securitycontrol.system.api.domain.SysUser;
import com.securitycontrol.system.api.domain.decision.SysMenu; 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.api.model.LoginUser;
import com.securitycontrol.system.service.LoginService; import com.securitycontrol.system.service.LoginService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.ArrayList; import java.util.*;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/** /**
* 系统用户登录 * 系统用户登录
@ -49,11 +48,23 @@ public class LoginController {
// 权限集合 // 权限集合
Set<String> permissions = service.getMenuPermission(sysUser); Set<String> permissions = service.getMenuPermission(sysUser);
// 用户绑定标段工程 // 用户绑定标段工程
// service.getUserBandingBidPro(); String roleCode = sysUser.getRoleCode();
List<BidProVo> 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(); LoginUser sysUserVo = new LoginUser();
sysUserVo.setSysUser(sysUser); sysUserVo.setSysUser(sysUser);
sysUserVo.setRoles(roles); sysUserVo.setRoles(roles);
sysUserVo.setPermissions(permissions); sysUserVo.setPermissions(permissions);
sysUser.setBidProVoList(bidProVoList);
return Result.ok(sysUserVo); return Result.ok(sysUserVo);
} }

View File

@ -2,6 +2,7 @@ package com.securitycontrol.system.mapper;
import com.securitycontrol.system.api.domain.SysUser; import com.securitycontrol.system.api.domain.SysUser;
import com.securitycontrol.system.api.domain.decision.SysMenu; import com.securitycontrol.system.api.domain.decision.SysMenu;
import com.securitycontrol.system.api.model.BidProVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@ -48,4 +49,15 @@ public interface LoginMapper {
* @param ip * @param ip
*/ */
void updateUserLogin(@Param("userId") String userId, @Param("ip") String ip); void updateUserLogin(@Param("userId") String userId, @Param("ip") String ip);
/**
* 获取用户绑定的标段工程
* @param param
* @param type
* @return List<BidProVo>
* @description
* @author cwchen
* @date 2024/3/26 10:20
*/
List<BidProVo> getUserBandingBidPro(@Param("param") String param,@Param("type") int type);
} }

View File

@ -2,6 +2,7 @@ package com.securitycontrol.system.service;
import com.securitycontrol.system.api.domain.SysUser; import com.securitycontrol.system.api.domain.SysUser;
import com.securitycontrol.system.api.domain.decision.SysMenu; import com.securitycontrol.system.api.domain.decision.SysMenu;
import com.securitycontrol.system.api.model.BidProVo;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@ -44,4 +45,15 @@ public interface LoginService {
* @param ip * @param ip
*/ */
void updateUserLogin(String userId, String ip); void updateUserLogin(String userId, String ip);
/**
* 获取用户绑定的标段工程
* @param param
* @param type
* @return List<BidProVo>
* @description
* @author cwchen
* @date 2024/3/26 10:18
*/
List<BidProVo> getUserBandingBidPro(String param,int type);
} }

View File

@ -2,6 +2,7 @@ package com.securitycontrol.system.service;
import com.securitycontrol.system.api.domain.SysUser; import com.securitycontrol.system.api.domain.SysUser;
import com.securitycontrol.system.api.domain.decision.SysMenu; import com.securitycontrol.system.api.domain.decision.SysMenu;
import com.securitycontrol.system.api.model.BidProVo;
import com.securitycontrol.system.mapper.LoginMapper; import com.securitycontrol.system.mapper.LoginMapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -85,4 +86,15 @@ public class LoginServiceImpl implements LoginService {
} }
} }
} }
@Override
public List<BidProVo> getUserBandingBidPro(String param,int type) {
List<BidProVo> list = new ArrayList<>();
try {
list = mapper.getUserBandingBidPro(param,type);
} catch (Exception e) {
log.error("获取用户绑定标段工程",e);
}
return list;
}
} }

View File

@ -10,10 +10,12 @@
<!--查询用户角色--> <!--查询用户角色-->
<select id="selectUserByUserName" parameterType="String" resultType="com.securitycontrol.system.api.domain.SysUser"> <select id="selectUserByUserName" parameterType="String" resultType="com.securitycontrol.system.api.domain.SysUser">
select user_id userId,user_name userName,login_name nickName, select user_id userId,user_name userName,login_name nickName,
`password`,org_id,dept_name deptName,org_name orgName,is_admin,role_id roleId, `password`,org_id,dept_name deptName,org_name orgName,is_admin,sr.role_id roleId,
user_type userType,login_type loginType,status, user_type userType,login_type loginType,status,
role_name roleName,phone,su.login_ip loginIp,su.login_name login_time sr.role_name roleName,phone,su.login_ip loginIp,su.login_name login_time,
sr.role_code AS roleCode
FROM sys_user su FROM sys_user su
LEFT JOIN sys_role sr ON su.role_id = sr.role_id
where su.del_flag=0 AND su.login_name=#{username} where su.del_flag=0 AND su.login_name=#{username}
</select> </select>
<!--查询用户已分配的权限--> <!--查询用户已分配的权限-->
@ -33,4 +35,28 @@
ORDER BY sm.menu_sort ASC ORDER BY sm.menu_sort ASC
</select> </select>
<!--获取用户绑定的标段工程 1.管理员 2.项目经理 3.地市值班员-->
<select id="getUserBandingBidPro" resultType="com.securitycontrol.system.api.model.BidProVo">
<if test="type == 1">
SELECT tp.bid_code AS bidCode,
tp.pro_name AS proName
FROM tb_project tp
ORDER BY plan_start_time
</if>
<if test="type == 2">
SELECT tup.bid_cod AS bidCode,
tp.pro_name AS proName
FROM tb_user_pro tup
LEFT JOIN tb_project tp on tup.bid_cod = tp.bid_code
WHERE tup.user_id = #{param}
ORDER BY tup.times
</if>
<if test="type == 3">
SELECT tp.bid_code AS bidCode,
tp.pro_name AS proName
FROM tb_project tp
WHERE tp.org = #{param}
ORDER BY plan_start_time
</if>
</select>
</mapper> </mapper>