提交 8aa6915e authored 作者: hzh's avatar hzh

动态切换项目功能实现

上级 73305073
...@@ -11,6 +11,7 @@ import lombok.NoArgsConstructor; ...@@ -11,6 +11,7 @@ import lombok.NoArgsConstructor;
import org.dromara.common.core.constant.TenantConstants; import org.dromara.common.core.constant.TenantConstants;
import org.dromara.common.core.constant.UserConstants; import org.dromara.common.core.constant.UserConstants;
import org.dromara.common.core.enums.UserType; import org.dromara.common.core.enums.UserType;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mall.enums.TerminalEnum; import org.dromara.common.mall.enums.TerminalEnum;
import org.dromara.system.api.model.LoginUser; import org.dromara.system.api.model.LoginUser;
...@@ -44,6 +45,7 @@ public class LoginHelper { ...@@ -44,6 +45,7 @@ public class LoginHelper {
public static final String OPEN_ID = "openId"; public static final String OPEN_ID = "openId";
public static final String MEMBER_ID = "memberId"; public static final String MEMBER_ID = "memberId";
public static final String USER_TYPE = "userType"; public static final String USER_TYPE = "userType";
public static final String PROJECT_ID = "projectId";
/** /**
* 登录系统 基于 设备类型 * 登录系统 基于 设备类型
...@@ -64,6 +66,8 @@ public class LoginHelper { ...@@ -64,6 +66,8 @@ public class LoginHelper {
.setExtra(USER_TYPE, loginUser.getUserType()) .setExtra(USER_TYPE, loginUser.getUserType())
); );
StpUtil.getTokenSession().set(LOGIN_USER_KEY, loginUser); StpUtil.getTokenSession().set(LOGIN_USER_KEY, loginUser);
StpUtil.getTokenSession().set(PROJECT_ID,
StringUtils.contains(loginUser.getUserType(), UserType.PROJECT_USER.getUserType()) ? Long.valueOf(StringUtils.splitList(loginUser.getUserType(), ":").get(1)) : null);
} }
/** /**
...@@ -144,6 +148,22 @@ public class LoginHelper { ...@@ -144,6 +148,22 @@ public class LoginHelper {
return Convert.toLong(getExtra(MEMBER_ID)); return Convert.toLong(getExtra(MEMBER_ID));
} }
/**
* 获取项目id
*/
public static Long getProjectId() {
SaSession session = StpUtil.getTokenSession();
if (ObjectUtil.isNull(session)) {
return null;
}
Object project = session.get(PROJECT_ID);
if (project == null) {
return null;
} else {
return Long.parseLong(project.toString());
}
}
/** /**
* 获取客户端ID * 获取客户端ID
*/ */
...@@ -249,4 +269,16 @@ public class LoginHelper { ...@@ -249,4 +269,16 @@ public class LoginHelper {
} }
} }
/**
* 动态设置项目id
*
* @param projectId 项目id
*/
public static void dynamicProjectId(Long projectId) {
if (projectId != null) {
StpUtil.getTokenSession().set(PROJECT_ID, projectId);
} else {
StpUtil.getTokenSession().delete(PROJECT_ID);
}
}
} }
...@@ -15,6 +15,7 @@ import org.dromara.common.log.annotation.Log; ...@@ -15,6 +15,7 @@ import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType; import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.web.core.BaseController; import org.dromara.common.web.core.BaseController;
import org.dromara.system.constant.Constant; import org.dromara.system.constant.Constant;
import org.dromara.system.domain.bo.SysProjectBo; import org.dromara.system.domain.bo.SysProjectBo;
...@@ -111,4 +112,27 @@ public class SysProjectController extends BaseController { ...@@ -111,4 +112,27 @@ public class SysProjectController extends BaseController {
@PathVariable Long[] projectIds) { @PathVariable Long[] projectIds) {
return toAjax(sysProjectService.deleteWithValidByIds(List.of(projectIds), true)); return toAjax(sysProjectService.deleteWithValidByIds(List.of(projectIds), true));
} }
/**
* 动态切换项目
*
* @param projectId 项目id
*/
@GetMapping("/dynamic")
public R<Void> dynamicProjectId(@RequestParam(required = false) Long projectId) {
LoginHelper.dynamicProjectId(projectId);
return R.ok();
}
/**
* 获取项目id
*
* @return 项目id
*/
@GetMapping("/getProjectId")
public R<Long> getProjectId() {
return R.ok(LoginHelper.getProjectId());
}
} }
...@@ -164,16 +164,16 @@ public class SysUserController extends BaseController { ...@@ -164,16 +164,16 @@ public class SysUserController extends BaseController {
/** /**
* 获取用户信息 * 获取用户信息
* *
* @param projectId 项目id
* @return 用户信息 * @return 用户信息
*/ */
@GetMapping("/getInfoOrderApprove") @GetMapping("/getInfoOrderApprove")
public R<UserOrderApproveVo> getInfoOrderApprove(@RequestParam Long projectId) { public R<UserOrderApproveVo> getInfoOrderApprove() {
LoginUser loginUser = LoginHelper.getLoginUser(); LoginUser loginUser = LoginHelper.getLoginUser();
UserOrderApproveVo uoa = new UserOrderApproveVo(); UserOrderApproveVo uoa = new UserOrderApproveVo();
uoa.setUserId(loginUser.getUserId()); uoa.setUserId(loginUser.getUserId());
uoa.setUserType(loginUser.getUserType()); uoa.setUserType(loginUser.getUserType());
uoa.setStaffId(loginUser.getUserId()); uoa.setStaffId(loginUser.getUserId());
Long projectId = LoginHelper.getProjectId();
uoa.setProjectId(projectId); uoa.setProjectId(projectId);
SysUserVo su = userService.selectUserById(uoa.getUserId()); SysUserVo su = userService.selectUserById(uoa.getUserId());
if (su.getUserType().contains(SysUser.PROJECT_USER_TYPE)) { if (su.getUserType().contains(SysUser.PROJECT_USER_TYPE)) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论