This commit is contained in:
2025-11-04 10:02:20 +08:00
parent 1cd8c5d420
commit d6fb143ac8
37 changed files with 628 additions and 46 deletions

View File

@ -50,7 +50,7 @@ public class RoleAccessAspect {
// 获取用户角色信息 // 获取用户角色信息
Role role = roleService.getById(user.getRoleId()); Role role = roleService.getById(user.getRoleId());
if (role == null) { if (role == null) {
return ApiResponse.failure("用户角色不存在"); return ApiResponse.failure("用户未分配角色");
} }
// 获取注解信息 // 获取注解信息

View File

@ -7,7 +7,6 @@ import com.yj.earth.business.service.RoleMenuService;
import com.yj.earth.common.util.ApiResponse; import com.yj.earth.common.util.ApiResponse;
import com.yj.earth.dto.roleMenu.AddRoleMenuDto; import com.yj.earth.dto.roleMenu.AddRoleMenuDto;
import com.yj.earth.dto.roleMenu.UpdateMenuDto; import com.yj.earth.dto.roleMenu.UpdateMenuDto;
import com.yj.earth.dto.roleOperate.UpdateRoleOperateDto;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
@ -15,6 +14,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -48,17 +48,24 @@ public class RoleMenuController {
String menu = entry.getKey(); String menu = entry.getKey();
List<String> permissions = entry.getValue(); List<String> permissions = entry.getValue();
if (permissions == null || permissions.isEmpty()) { if (permissions == null) {
continue; permissions = new ArrayList<>();
} }
// 为每个权限创建一条角色-菜单-权限关联记录 if (permissions.isEmpty()) {
for (String permission : permissions) {
RoleMenu roleMenu = new RoleMenu(); RoleMenu roleMenu = new RoleMenu();
roleMenu.setRoleId(roleId); roleMenu.setRoleId(roleId);
roleMenu.setMenu(menu); roleMenu.setMenu(menu);
roleMenu.setPermission(permission); roleMenu.setPermission(null);
roleMenuService.save(roleMenu); roleMenuService.save(roleMenu);
} else {
for (String permission : permissions) {
RoleMenu roleMenu = new RoleMenu();
roleMenu.setRoleId(roleId);
roleMenu.setMenu(menu);
roleMenu.setPermission(permission);
roleMenuService.save(roleMenu);
}
} }
} }
} }
@ -82,14 +89,14 @@ public class RoleMenuController {
return ApiResponse.success(null); return ApiResponse.success(null);
} }
@Operation(summary = "查询角色权限") @Operation(summary = "查询角色菜单权限")
@PostMapping("/query") @PostMapping("/query")
public ApiResponse query(@Parameter(description = "角色权限ID") @RequestParam(required = true) String id) { public ApiResponse query(@Parameter(description = "角色菜单权限ID") @RequestParam(required = true) String id) {
RoleMenu roleMenu = roleMenuService.getById(id); RoleMenu roleMenu = roleMenuService.getById(id);
return ApiResponse.success(roleMenu); return ApiResponse.success(roleMenu);
} }
@Operation(summary = "查询所有方案") @Operation(summary = "所有角色菜单权限")
@PostMapping("/list") @PostMapping("/list")
public ApiResponse list(@Parameter(description = "分页数量") @RequestParam(value = "pageNum") Integer pageNum, public ApiResponse list(@Parameter(description = "分页数量") @RequestParam(value = "pageNum") Integer pageNum,
@Parameter(description = "分页大小") @RequestParam(value = "pageSize") Integer pageSize) { @Parameter(description = "分页大小") @RequestParam(value = "pageSize") Integer pageSize) {

View File

@ -52,14 +52,14 @@ public class RoleOperateController {
return ApiResponse.success(null); return ApiResponse.success(null);
} }
@Operation(summary = "查询角色权限") @Operation(summary = "查询角色操作权限")
@PostMapping("/query") @PostMapping("/query")
public ApiResponse query(@Parameter(description = "角色权限ID") @RequestParam(required = true) String id) { public ApiResponse query(@Parameter(description = "角色操作权限ID") @RequestParam(required = true) String id) {
RoleOperate roleOperate = roleOperateService.getById(id); RoleOperate roleOperate = roleOperateService.getById(id);
return ApiResponse.success(roleOperate); return ApiResponse.success(roleOperate);
} }
@Operation(summary = "查询所有方案") @Operation(summary = "所有角色操作权限")
@PostMapping("/list") @PostMapping("/list")
public ApiResponse list(@Parameter(description = "分页数量") @RequestParam(value = "pageNum") Integer pageNum, public ApiResponse list(@Parameter(description = "分页数量") @RequestParam(value = "pageNum") Integer pageNum,
@Parameter(description = "分页大小") @RequestParam(value = "pageSize") Integer pageSize) { @Parameter(description = "分页大小") @RequestParam(value = "pageSize") Integer pageSize) {

View File

@ -0,0 +1,59 @@
package com.yj.earth.business.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yj.earth.business.domain.TsEvent;
import com.yj.earth.business.service.TsEventService;
import com.yj.earth.common.util.ApiResponse;
import com.yj.earth.dto.tsEvent.AddTsEventDto;
import com.yj.earth.dto.tsEvent.UpdateTsEventDto;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@Tag(name = "态势事件管理")
@RestController
@RequestMapping("/tsEvent")
public class TsEventController {
@Resource
private TsEventService tsEventService;
@PostMapping("/add")
@Operation(summary = "添加态势事件")
public ApiResponse add(@RequestBody AddTsEventDto addTsEventDto) {
TsEvent tsEvent = new TsEvent();
BeanUtils.copyProperties(addTsEventDto, tsEvent);
tsEventService.save(tsEvent);
return ApiResponse.success(null);
}
@PostMapping("/delete")
@Operation(summary = "删除态势事件")
public ApiResponse delete(@Parameter(description = "态势事件ID") @RequestParam(required = true) String id) {
tsEventService.removeById(id);
return ApiResponse.success(null);
}
@PostMapping("/update")
@Operation(summary = "修改态势事件")
public ApiResponse update(@RequestBody UpdateTsEventDto updateTsEventDto) {
TsEvent tsEvent = new TsEvent();
BeanUtils.copyProperties(updateTsEventDto, tsEvent);
return ApiResponse.success(null);
}
@GetMapping("/query")
@Operation(summary = "查询某个态势方案下资源下的事件")
public ApiResponse query(
@Parameter(description = "态势方案ID") @RequestParam(required = true) String planId,
@Parameter(description = "态势资源ID") @RequestParam(required = true) String sourceId) {
LambdaQueryWrapper<TsEvent> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TsEvent::getPlanId, planId);
queryWrapper.eq(TsEvent::getSourceId, sourceId);
return ApiResponse.success(tsEventService.list(queryWrapper));
}
}

View File

@ -0,0 +1,55 @@
package com.yj.earth.business.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yj.earth.business.domain.TsSource;
import com.yj.earth.business.service.TsSourceService;
import com.yj.earth.common.util.ApiResponse;
import com.yj.earth.dto.tsSource.AddTsSourceDto;
import com.yj.earth.dto.tsSource.UpdateTsSourceDto;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@Tag(name = "态势资源管理")
@RestController
@RequestMapping("/tsSource")
public class TsSourceController {
@Resource
private TsSourceService tsSourceService;
@PostMapping("/add")
@Operation(summary = "添加态势资源")
public ApiResponse add(@RequestBody AddTsSourceDto addTsSourceDto) {
TsSource tsSource = new TsSource();
BeanUtils.copyProperties(addTsSourceDto, tsSource);
tsSourceService.save(tsSource);
return ApiResponse.success(null);
}
@Operation(summary = "删除态势资源")
@PostMapping("/delete")
public ApiResponse delete(@Parameter(description = "态势资源ID") @RequestParam(required = true) String id) {
tsSourceService.removeById(id);
return ApiResponse.success(null);
}
@Operation(summary = "修改态势资源")
@PostMapping("/update")
public ApiResponse update(@RequestBody UpdateTsSourceDto updateTsSourceDto) {
TsSource tsSource = new TsSource();
BeanUtils.copyProperties(updateTsSourceDto, tsSource);
return ApiResponse.success(null);
}
@Operation(summary = "查询某个方案下的态势资源")
@PostMapping("/query")
public ApiResponse query(@Parameter(description = "态势方案ID") @RequestParam(required = true) String id) {
LambdaQueryWrapper<TsSource> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TsSource::getPlanId, id);
return ApiResponse.success(tsSourceService.list(queryWrapper));
}
}

View File

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yj.earth.annotation.RoleAccess; import com.yj.earth.annotation.RoleAccess;
import com.yj.earth.business.domain.Role;
import com.yj.earth.business.domain.RoleMenu; import com.yj.earth.business.domain.RoleMenu;
import com.yj.earth.business.domain.RoleOperate; import com.yj.earth.business.domain.RoleOperate;
import com.yj.earth.business.domain.User; import com.yj.earth.business.domain.User;
@ -189,4 +190,25 @@ public class UserController {
userService.updateById(user); userService.updateById(user);
return ApiResponse.success(null); return ApiResponse.success(null);
} }
@Operation(summary = "当前用户是否为管理员")
@GetMapping("/isAdmin")
public ApiResponse isAdmin() {
// 获取用户ID
String userId = StpUtil.getLoginIdAsString();
// 查询用户角色名称
User user = userService.getById(userId);
if (user == null) {
return ApiResponse.failure("用户不存在");
}
// 查询角色名称
Role role = roleService.getById(user.getRoleId());
if (role == null) {
return ApiResponse.failure("角色不存在");
}
if (role.getIsSuper() == 1) {
return ApiResponse.success(true);
}
return ApiResponse.success(false);
}
} }

View File

@ -1,5 +1,7 @@
package com.yj.earth.business.domain; package com.yj.earth.business.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
@ -24,7 +26,9 @@ public class Icon {
@Schema(description = "图标视图") @Schema(description = "图标视图")
private String view; private String view;
@Schema(description = "创建时间") @Schema(description = "创建时间")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createdAt; private LocalDateTime createdAt;
@Schema(description = "更新时间") @Schema(description = "更新时间")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updatedAt; private LocalDateTime updatedAt;
} }

View File

@ -9,23 +9,12 @@ import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
/** @Data
* <p>
*
* </p>
*
* @author 周志雄
* @since 2025-09-24
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("icon_library")
@Schema(name = "IconLibrary", description = "")
public class IconLibrary implements Serializable { public class IconLibrary implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@ -1,5 +1,7 @@
package com.yj.earth.business.domain; package com.yj.earth.business.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
@ -16,7 +18,9 @@ public class IconType {
@Schema(description = "树形索引") @Schema(description = "树形索引")
private Integer treeIndex; private Integer treeIndex;
@Schema(description = "创建时间") @Schema(description = "创建时间")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createdAt; private LocalDateTime createdAt;
@Schema(description = "更新时间") @Schema(description = "更新时间")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updatedAt; private LocalDateTime updatedAt;
} }

View File

@ -5,37 +5,30 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
/** @Data
* <p>
*
* </p>
*
* @author 周志雄
* @since 2025-10-30
*/
@Getter
@Setter
@Accessors(chain = true)
@Schema(name = "Matter", description = "")
public class Matter implements Serializable { public class Matter implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_UUID) @TableId(value = "id", type = IdType.ASSIGN_UUID)
@Schema(description = "主键")
private String id; private String id;
@Schema(description = "名称")
private String name; private String name;
@Schema(description = "数量")
private Integer num; private Integer num;
@Schema(description = "创建时间")
@TableField(fill = FieldFill.INSERT) @TableField(fill = FieldFill.INSERT)
private String createdAt; private LocalDateTime createdAt;
@Schema(description = "更新时间")
@TableField(fill = FieldFill.UPDATE) @TableField(fill = FieldFill.UPDATE)
private String updatedAt; private LocalDateTime updatedAt;
} }

View File

@ -1,5 +1,7 @@
package com.yj.earth.business.domain; package com.yj.earth.business.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
@ -22,7 +24,9 @@ public class Military {
@Schema(description = "军标数据") @Schema(description = "军标数据")
private byte[] militaryData; private byte[] militaryData;
@Schema(description = "创建时间") @Schema(description = "创建时间")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createdAt; private LocalDateTime createdAt;
@Schema(description = "更新时间") @Schema(description = "更新时间")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updatedAt; private LocalDateTime updatedAt;
} }

View File

@ -1,5 +1,7 @@
package com.yj.earth.business.domain; package com.yj.earth.business.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
@ -16,7 +18,9 @@ public class MilitaryType {
@Schema(description = "树形索引") @Schema(description = "树形索引")
private Integer treeIndex; private Integer treeIndex;
@Schema(description = "创建时间") @Schema(description = "创建时间")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createdAt; private LocalDateTime createdAt;
@Schema(description = "更新时间") @Schema(description = "更新时间")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updatedAt; private LocalDateTime updatedAt;
} }

View File

@ -1,5 +1,7 @@
package com.yj.earth.business.domain; package com.yj.earth.business.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
@ -30,7 +32,9 @@ public class Model {
@Schema(description = "模型数据URL") @Schema(description = "模型数据URL")
private String modelUrl; private String modelUrl;
@Schema(description = "创建时间") @Schema(description = "创建时间")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createdAt; private LocalDateTime createdAt;
@Schema(description = "更新时间") @Schema(description = "更新时间")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updatedAt; private LocalDateTime updatedAt;
} }

View File

@ -1,5 +1,7 @@
package com.yj.earth.business.domain; package com.yj.earth.business.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
@ -16,7 +18,9 @@ public class ModelType {
@Schema(description = "树状索引") @Schema(description = "树状索引")
private Integer treeIndex; private Integer treeIndex;
@Schema(description = "创建时间") @Schema(description = "创建时间")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createdAt; private LocalDateTime createdAt;
@Schema(description = "更新时间") @Schema(description = "更新时间")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updatedAt; private LocalDateTime updatedAt;
} }

View File

@ -0,0 +1,46 @@
package com.yj.earth.business.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
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 java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
@Data
public class TsEvent implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_UUID)
@Schema(description = "主键")
private String id;
@Schema(description = "态势方案ID")
private String planId;
@Schema(description = "态势资源ID")
private String sourceId;
@Schema(description = "事件名称")
private String name;
@Schema(description = "事件回调")
private String callback;
@Schema(description = "开始时间")
private LocalDateTime startTime;
@Schema(description = "结束时间")
private LocalDateTime endTime;
@Schema(description = "其他参数")
private String detail;
@Schema(description = "创建时间")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createdAt;
@Schema(description = "更新时间")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updatedAt;
}

View File

@ -32,6 +32,9 @@ public class TsPlan implements Serializable {
@Schema(description = "创建人") @Schema(description = "创建人")
private String createdBy; private String createdBy;
@Schema(description = "仿真开始时间")
private LocalDateTime simulationStartTime;
@Schema(description = "创建时间") @Schema(description = "创建时间")
@TableField(fill = FieldFill.INSERT) @TableField(fill = FieldFill.INSERT)
private LocalDateTime createdAt; private LocalDateTime createdAt;

View File

@ -0,0 +1,43 @@
package com.yj.earth.business.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
public class TsSource implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_UUID)
@Schema(description = "主键")
private String id;
@Schema(description = "资源名称")
private String sourceName;
@Schema(description = "资源类型")
private String sourceType;
@Schema(description = "资源路径")
private String sourcePath;
@Schema(description = "父级ID")
private String parentId;
@Schema(description = "树状索引")
private Integer treeIndex;
@Schema(description = "是否显示")
private Integer isShow;
@Schema(description = "其他内容")
private String detail;
@Schema(description = "前端参数")
private String params;
@Schema(description = "方案ID")
private String planId;
@Schema(description = "创建时间")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createdAt;
@Schema(description = "更新时间")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updatedAt;
}

View File

@ -0,0 +1,18 @@
package com.yj.earth.business.mapper;
import com.yj.earth.business.domain.TsEvent;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 周志雄
* @since 2025-11-03
*/
@Mapper
public interface TsEventMapper extends BaseMapper<TsEvent> {
}

View File

@ -0,0 +1,18 @@
package com.yj.earth.business.mapper;
import com.yj.earth.business.domain.TsSource;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 周志雄
* @since 2025-11-03
*/
@Mapper
public interface TsSourceMapper extends BaseMapper<TsSource> {
}

View File

@ -0,0 +1,16 @@
package com.yj.earth.business.service;
import com.yj.earth.business.domain.TsEvent;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author 周志雄
* @since 2025-11-03
*/
public interface TsEventService extends IService<TsEvent> {
}

View File

@ -0,0 +1,16 @@
package com.yj.earth.business.service;
import com.yj.earth.business.domain.TsSource;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author 周志雄
* @since 2025-11-03
*/
public interface TsSourceService extends IService<TsSource> {
}

View File

@ -0,0 +1,20 @@
package com.yj.earth.business.service.impl;
import com.yj.earth.business.domain.TsEvent;
import com.yj.earth.business.mapper.TsEventMapper;
import com.yj.earth.business.service.TsEventService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author 周志雄
* @since 2025-11-03
*/
@Service
public class TsEventServiceImpl extends ServiceImpl<TsEventMapper, TsEvent> implements TsEventService {
}

View File

@ -0,0 +1,20 @@
package com.yj.earth.business.service.impl;
import com.yj.earth.business.domain.TsSource;
import com.yj.earth.business.mapper.TsSourceMapper;
import com.yj.earth.business.service.TsSourceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author 周志雄
* @since 2025-11-03
*/
@Service
public class TsSourceServiceImpl extends ServiceImpl<TsSourceMapper, TsSource> implements TsSourceService {
}

View File

@ -34,7 +34,7 @@ public class CodeUtil {
} }
// 传入需要生成代码的表名 // 传入需要生成代码的表名
Generation("role_menu"); Generation("ts_event");
} }
public static void Generation(String... tableName) { public static void Generation(String... tableName) {

View File

@ -59,6 +59,8 @@ public class DatabaseManager {
classes.add(RoleOperate.class); classes.add(RoleOperate.class);
classes.add(RoleMenu.class); classes.add(RoleMenu.class);
classes.add(TsPlan.class); classes.add(TsPlan.class);
classes.add(TsSource.class);
classes.add(TsEvent.class);
ENTITY_CLASSES = Collections.unmodifiableList(classes); ENTITY_CLASSES = Collections.unmodifiableList(classes);
} }

View File

@ -0,0 +1,30 @@
package com.yj.earth.design;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class TsEvent {
@Schema(description = "主键")
private String id;
@Schema(description = "态势方案ID")
private String planId;
@Schema(description = "态势资源ID")
private String sourceId;
@Schema(description = "事件名称")
private String name;
@Schema(description = "事件回调")
private String callback;
@Schema(description = "开始时间")
private LocalDateTime startTime;
@Schema(description = "结束时间")
private LocalDateTime endTime;
@Schema(description = "其他参数")
private String detail;
@Schema(description = "创建时间")
private LocalDateTime createdAt;
@Schema(description = "更新时间")
private LocalDateTime updatedAt;
}

View File

@ -15,6 +15,8 @@ public class TsPlan {
private String desc; private String desc;
@Schema(description = "创建人") @Schema(description = "创建人")
private String createdBy; private String createdBy;
@Schema(description = "仿真开始时间")
private LocalDateTime simulationStartTime;
@Schema(description = "创建时间") @Schema(description = "创建时间")
private LocalDateTime createdAt; private LocalDateTime createdAt;
@Schema(description = "更新时间") @Schema(description = "更新时间")

View File

@ -0,0 +1,34 @@
package com.yj.earth.design;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class TsSource {
@Schema(description = "主键")
private String id;
@Schema(description = "资源名称")
private String sourceName;
@Schema(description = "资源类型")
private String sourceType;
@Schema(description = "资源路径")
private String sourcePath;
@Schema(description = "父级ID")
private String parentId;
@Schema(description = "树状索引")
private Integer treeIndex;
@Schema(description = "是否显示")
private Integer isShow;
@Schema(description = "其他内容")
private String detail;
@Schema(description = "前端参数")
private String params;
@Schema(description = "方案ID")
private String planId;
@Schema(description = "创建时间")
private LocalDateTime createdAt;
@Schema(description = "更新时间")
private LocalDateTime updatedAt;
}

View File

@ -11,6 +11,5 @@ public class AddRoleMenuDto {
@Schema(description = "角色ID") @Schema(description = "角色ID")
private String roleId; private String roleId;
@Schema(description = "权限列表") @Schema(description = "权限列表")
// 键为菜单名、值为该菜单的权限集合
private List<Map<String, List<String>>> permissionList; private List<Map<String, List<String>>> permissionList;
} }

View File

@ -0,0 +1,26 @@
package com.yj.earth.dto.tsEvent;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class AddTsEventDto {
@Schema(description = "主键")
private String id;
@Schema(description = "态势方案ID")
private String planId;
@Schema(description = "态势资源ID")
private String sourceId;
@Schema(description = "事件名称")
private String name;
@Schema(description = "事件回调")
private String callback;
@Schema(description = "开始时间")
private LocalDateTime startTime;
@Schema(description = "结束时间")
private LocalDateTime endTime;
@Schema(description = "其他参数")
private String detail;
}

View File

@ -0,0 +1,26 @@
package com.yj.earth.dto.tsEvent;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class UpdateTsEventDto {
@Schema(description = "主键")
private String id;
@Schema(description = "态势方案ID")
private String planId;
@Schema(description = "态势资源ID")
private String sourceId;
@Schema(description = "事件名称")
private String name;
@Schema(description = "事件回调")
private String callback;
@Schema(description = "开始时间")
private LocalDateTime startTime;
@Schema(description = "结束时间")
private LocalDateTime endTime;
@Schema(description = "其他参数")
private String detail;
}

View File

@ -3,10 +3,14 @@ package com.yj.earth.dto.tsPlan;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime;
@Data @Data
public class AddTsPlanDto { public class AddTsPlanDto {
@Schema(description = "方案名称") @Schema(description = "方案名称")
private String name; private String name;
@Schema(description = "方案描述") @Schema(description = "方案描述")
private String desc; private String desc;
@Schema(description = "仿真开始时间")
private LocalDateTime simulationStartTime;
} }

View File

@ -3,6 +3,8 @@ package com.yj.earth.dto.tsPlan;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime;
@Data @Data
public class UpdateTsPlanDto { public class UpdateTsPlanDto {
@Schema(description = "方案Id") @Schema(description = "方案Id")
@ -11,4 +13,6 @@ public class UpdateTsPlanDto {
private String name; private String name;
@Schema(description = "方案描述") @Schema(description = "方案描述")
private String desc; private String desc;
@Schema(description = "仿真开始时间")
private LocalDateTime simulationStartTime;
} }

View File

@ -0,0 +1,28 @@
package com.yj.earth.dto.tsSource;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class AddTsSourceDto {
@Schema(description = "主键")
private String id;
@Schema(description = "资源名称")
private String sourceName;
@Schema(description = "资源类型")
private String sourceType;
@Schema(description = "资源路径")
private String sourcePath;
@Schema(description = "父级ID")
private String parentId;
@Schema(description = "树状索引")
private Integer treeIndex;
@Schema(description = "是否显示")
private Integer isShow;
@Schema(description = "其他内容")
private String detail;
@Schema(description = "前端参数")
private String params;
@Schema(description = "方案ID")
private String planId;
}

View File

@ -0,0 +1,28 @@
package com.yj.earth.dto.tsSource;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class UpdateTsSourceDto {
@Schema(description = "主键")
private String id;
@Schema(description = "资源名称")
private String sourceName;
@Schema(description = "资源类型")
private String sourceType;
@Schema(description = "资源路径")
private String sourcePath;
@Schema(description = "父级ID")
private String parentId;
@Schema(description = "树状索引")
private Integer treeIndex;
@Schema(description = "是否显示")
private Integer isShow;
@Schema(description = "其他内容")
private String detail;
@Schema(description = "前端参数")
private String params;
@Schema(description = "方案ID")
private String planId;
}

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yj.earth.business.mapper.TsEventMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.yj.earth.business.domain.TsEvent">
<id column="id" property="id" />
<result column="plan_id" property="planId" />
<result column="source_id" property="sourceId" />
<result column="name" property="name" />
<result column="callback" property="callback" />
<result column="start_time" property="startTime" />
<result column="end_time" property="endTime" />
<result column="detail" property="detail" />
<result column="created_at" property="createdAt" />
<result column="updated_at" property="updatedAt" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, plan_id, source_id, name, callback, start_time, end_time, detail, created_at, updated_at
</sql>
</mapper>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yj.earth.business.mapper.TsSourceMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.yj.earth.business.domain.TsSource">
<id column="id" property="id" />
<result column="source_name" property="sourceName" />
<result column="source_type" property="sourceType" />
<result column="source_path" property="sourcePath" />
<result column="parent_id" property="parentId" />
<result column="tree_index" property="treeIndex" />
<result column="is_show" property="isShow" />
<result column="detail" property="detail" />
<result column="params" property="params" />
<result column="plan_id" property="planId" />
<result column="created_at" property="createdAt" />
<result column="updated_at" property="updatedAt" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, source_name, source_type, source_path, parent_id, tree_index, is_show, detail, params, plan_id, created_at, updated_at
</sql>
</mapper>