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

动态切换项目功能实现

上级 73305073
......@@ -11,6 +11,7 @@ import lombok.NoArgsConstructor;
import org.dromara.common.core.constant.TenantConstants;
import org.dromara.common.core.constant.UserConstants;
import org.dromara.common.core.enums.UserType;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mall.enums.TerminalEnum;
import org.dromara.system.api.model.LoginUser;
......@@ -44,6 +45,7 @@ public class LoginHelper {
public static final String OPEN_ID = "openId";
public static final String MEMBER_ID = "memberId";
public static final String USER_TYPE = "userType";
public static final String PROJECT_ID = "projectId";
/**
* 登录系统 基于 设备类型
......@@ -64,6 +66,8 @@ public class LoginHelper {
.setExtra(USER_TYPE, loginUser.getUserType())
);
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 {
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
*/
......@@ -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;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
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.system.constant.Constant;
import org.dromara.system.domain.bo.SysProjectBo;
......@@ -111,4 +112,27 @@ public class SysProjectController extends BaseController {
@PathVariable Long[] projectIds) {
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 {
/**
* 获取用户信息
*
* @param projectId 项目id
* @return 用户信息
*/
@GetMapping("/getInfoOrderApprove")
public R<UserOrderApproveVo> getInfoOrderApprove(@RequestParam Long projectId) {
public R<UserOrderApproveVo> getInfoOrderApprove() {
LoginUser loginUser = LoginHelper.getLoginUser();
UserOrderApproveVo uoa = new UserOrderApproveVo();
uoa.setUserId(loginUser.getUserId());
uoa.setUserType(loginUser.getUserType());
uoa.setStaffId(loginUser.getUserId());
Long projectId = LoginHelper.getProjectId();
uoa.setProjectId(projectId);
SysUserVo su = userService.selectUserById(uoa.getUserId());
if (su.getUserType().contains(SysUser.PROJECT_USER_TYPE)) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论