feat: env session 接口 开发

This commit is contained in:
zhangshuai
2024-09-06 15:52:17 +08:00
parent 6f9a738a37
commit ce1b53a657
6 changed files with 80 additions and 0 deletions

View File

@@ -84,6 +84,8 @@ public enum RCode {
//environment
ENVIRONMENT_SESSION_NOT_EXIST(601001, "environment session does not exist"),
ENVIRONMENT_NOT_EXIST(601002, "environment does not exist"),
ENVIRONMENT_USED(601003, "The environment is already in use"),

View File

@@ -15,6 +15,8 @@ import net.geedge.asw.module.environment.entity.EnvironmentSessionEntity;
import net.geedge.asw.module.environment.service.IEnvironmentService;
import net.geedge.asw.module.environment.service.IEnvironmentSessionService;
import net.geedge.asw.module.environment.util.EnvironmentUtil;
import net.geedge.asw.module.sys.service.ISysUserService;
import net.geedge.asw.module.workspace.service.IWorkspaceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -34,6 +36,12 @@ public class EnvironmentController {
@Autowired
private IEnvironmentSessionService environmentSessionService;
@Autowired
private ISysUserService userService;
@Autowired
private IWorkspaceService workspaceService;
@GetMapping("/{id}")
public R detail(@PathVariable("id") String id) {
EnvironmentEntity entity = environmentService.queryInfo(id);
@@ -115,4 +123,29 @@ public class EnvironmentController {
Page page = environmentService.mySession(params);
return R.ok(page);
}
@PostMapping("/{envId}/session")
public R saveSession(@PathVariable("envId") String envId, @RequestParam String workspaceId){
EnvironmentSessionEntity session = environmentSessionService.saveSession(envId, workspaceId);
return R.ok().putData("record", session.getId());
}
@GetMapping("/{envId}/session/{sessionId}")
public R querySession(@PathVariable("envId") String envId, @PathVariable("sessionId") String sessionId, @RequestParam String workspaceId){
EnvironmentSessionEntity session = environmentSessionService.getOne(new LambdaQueryWrapper<EnvironmentSessionEntity>().eq(EnvironmentSessionEntity::getId, sessionId).eq(EnvironmentSessionEntity::getWorkspaceId, workspaceId));
session.setEnv(environmentService.getById(envId));
session.setWorkspace(workspaceService.getById(workspaceId));
session.setUser(userService.getById(session.getUserId()));
return R.ok().putData("record", session);
}
@DeleteMapping("/{envId}/session/{sessionId}")
public R removeSession(@PathVariable("envId") String envId, @PathVariable("sessionId") String sessionId, @RequestParam String workspaceId){
EnvironmentSessionEntity session = environmentSessionService.getById(sessionId);
session.setEndTimestamp(System.currentTimeMillis());
session.setStatus(2);
environmentSessionService.updateById(session);
return R.ok();
}
}

View File

@@ -1,9 +1,12 @@
package net.geedge.asw.module.environment.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import net.geedge.asw.module.sys.entity.SysUserEntity;
import net.geedge.asw.module.workspace.entity.WorkspaceEntity;
@Data
@TableName("environment_session")
@@ -21,4 +24,13 @@ public class EnvironmentSessionEntity {
private String workspaceId;
@TableField(exist = false)
private EnvironmentEntity env;
@TableField(exist = false)
private WorkspaceEntity workspace;
@TableField(exist = false)
private SysUserEntity user;
}

View File

@@ -5,4 +5,5 @@ import net.geedge.asw.module.environment.entity.EnvironmentSessionEntity;
public interface IEnvironmentSessionService extends IService<EnvironmentSessionEntity>{
EnvironmentSessionEntity saveSession(String envId, String workspaceId);
}

View File

@@ -1,15 +1,44 @@
package net.geedge.asw.module.environment.service.impl;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.log.Log;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.geedge.asw.common.util.ASWException;
import net.geedge.asw.common.util.RCode;
import net.geedge.asw.common.util.T;
import net.geedge.asw.module.environment.dao.EnvironmentSessionDao;
import net.geedge.asw.module.environment.entity.EnvironmentSessionEntity;
import net.geedge.asw.module.environment.service.IEnvironmentSessionService;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class EnvironmentSessionServiceImpl extends ServiceImpl<EnvironmentSessionDao, EnvironmentSessionEntity> implements IEnvironmentSessionService {
private static final Log log = Log.get();
@Override
public EnvironmentSessionEntity saveSession(String envId, String workspaceId) {
List<EnvironmentSessionEntity> sessionEntityList = this.list(new LambdaQueryWrapper<EnvironmentSessionEntity>()
.eq(EnvironmentSessionEntity::getEnvId, envId)
.eq(EnvironmentSessionEntity::getWorkspaceId, workspaceId)
.eq(EnvironmentSessionEntity::getStatus, 1));
if (T.CollectionUtil.isNotEmpty(sessionEntityList)) {
throw new ASWException(RCode.ENVIRONMENT_USED);
}
EnvironmentSessionEntity session = new EnvironmentSessionEntity();
session.setEnvId(envId);
session.setWorkspaceId(workspaceId);
session.setStatus(1);
session.setStartTimestamp(System.currentTimeMillis());
session.setUserId(StpUtil.getLoginIdAsString());
this.save(session);
return session;
}
}

View File

@@ -129,5 +129,8 @@ INSERT INTO `sys_i18n`(`id`, `name`, `code`, `value`, `lang`, `remark`, `update_
INSERT INTO `sys_i18n`(`id`, `name`, `code`, `value`, `lang`, `remark`, `update_user_id`, `update_timestamp`) VALUES (215, '201017', 'APP_IMPORT_FILE_FORMAT_ERROR', '导入文件格式错误', 'zh', '', 'admin', 1724030366000);
INSERT INTO `sys_i18n`(`id`, `name`, `code`, `value`, `lang`, `remark`, `update_user_id`, `update_timestamp`) VALUES (217, '401011', 'WORKSPACE_MEMBER_USER_ID_REPEAT', 'Workspace member user repeat', 'en', '', 'admin', 1724030366000);
INSERT INTO `sys_i18n`(`id`, `name`, `code`, `value`, `lang`, `remark`, `update_user_id`, `update_timestamp`) VALUES (219, '401011', 'WORKSPACE_MEMBER_USER_ID_REPEAT', '工作空间用户重复', 'zh', '', 'admin', 1724030366000);
INSERT INTO `sys_i18n`(`id`, `name`, `code`, `value`, `lang`, `remark`, `update_user_id`, `update_timestamp`) VALUES (221, '601003', 'ENVIRONMENT_USED', 'The environment is already in use', 'en', '', 'admin', 1724030366000);
INSERT INTO `sys_i18n`(`id`, `name`, `code`, `value`, `lang`, `remark`, `update_user_id`, `update_timestamp`) VALUES (223, '601003', 'ENVIRONMENT_USED', '环境已在使用中', 'zh', '', 'admin', 1724030366000);
SET FOREIGN_KEY_CHECKS = 1;