Merge remote-tracking branch 'origin/test-training2' into test

# Conflicts:
#	src/main/java/club/joylink/rtss/simulation/cbtc/GroupSimulationServiceImpl.java
#	src/main/resources/application.yml
This commit is contained in:
tiger_zhou 2023-01-16 10:33:52 +08:00
commit f85636942d
924 changed files with 373496 additions and 3942 deletions

Binary file not shown.

57
pom.xml
View File

@ -102,43 +102,50 @@
<version>0.2.1</version>
</dependency>
<dependency>
<groupId>com.huawei.sis</groupId>
<artifactId>huaweicloud-java-sdk-sis</artifactId>
<version>1.3.2</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/huaweicloud-java-sdk-sis-1.3.2.jar</systemPath>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.huawei.sis</groupId>-->
<!-- <artifactId>huaweicloud-java-sdk-sis</artifactId>-->
<!-- <version>1.3.2</version>-->
<!-- <scope>system</scope>-->
<!-- <systemPath>${project.basedir}/libs/huaweicloud-java-sdk-sis-1.3.2.jar</systemPath>-->
<!-- </dependency>-->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>31.1-jre</version>
</dependency>
<dependency>
<groupId>com.huawei.apigateway</groupId>
<artifactId>java-sdk-core</artifactId>
<version>3.0.12</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/java-sdk-core-3.0.12.jar</systemPath>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.14.2</version>
</dependency>
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.4.4</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.9.0</version>
</dependency>
<!-- <dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
</dependency>-->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.10.3</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>31.1-jre</version>
</dependency>
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.0</version>
</dependency>
<!-- iscs -->
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.19.3</version>
</dependency>
</dependencies>
<build>

View File

@ -0,0 +1,48 @@
/*
Navicat Premium Data Transfer
Source Server : walker
Source Server Type : MySQL
Source Server Version : 80029
Source Host : 192.168.3.233:3306
Source Schema : joylink
Target Server Type : MySQL
Target Server Version : 80029
File Encoding : 65001
Date: 30/08/2022 16:02:15
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for draft_training2
-- ----------------------------
DROP TABLE IF EXISTS `draft_training2`;
CREATE TABLE `draft_training2` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '实训名称',
`map_id` bigint NULL DEFAULT NULL COMMENT '实训地图id',
`description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '描述',
`type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '实训类型(单操 single场景scene',
`label_json` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '标签,用于检索',
`map_location_json` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '地图定位json',
`bg_scene_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '初始背景',
`final_scenes_json` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '实训编制完保存为最终场景json数据',
`run_plan_id` bigint NULL DEFAULT NULL COMMENT '运行图id',
`opera_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '操作列表json(List<Operation2VO>)',
`step_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '步骤列表json(List<Step2VO>的json)',
`scoring_rule_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '打分规则列表json(List<ScoringRuleVO>的json)',
`member_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '仿真内所有成员',
`player_id_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '参演的仿真成员id列表Json',
`failure_condition_json` varchar(555) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '实训失败判定条件',
`creator_id` bigint NULL DEFAULT NULL,
`create_time` datetime NULL DEFAULT NULL,
`update_time` datetime NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `map_id_index`(`map_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 36 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -0,0 +1,48 @@
/*
Navicat Premium Data Transfer
Source Server : walker
Source Server Type : MySQL
Source Server Version : 80029
Source Host : 192.168.3.233:3306
Source Schema : joylink
Target Server Type : MySQL
Target Server Version : 80029
File Encoding : 65001
Date: 30/08/2022 16:02:51
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for published_training2
-- ----------------------------
DROP TABLE IF EXISTS `published_training2`;
CREATE TABLE `published_training2` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '已发布实训的id',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '实训名称',
`map_id` bigint NULL DEFAULT NULL COMMENT '实训地图id',
`description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '实训描述',
`type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '实训类型(单操 single场景scene',
`label_json` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '标签,用于检索',
`map_location_json` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '地图定位json',
`bg_scene_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '初始背景',
`run_plan_id` bigint NULL DEFAULT NULL COMMENT '运行图id',
`opera_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '操作列表json(List<Operation2VO>)',
`step_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '步骤列表json(List<Step2VO>的json)',
`scoring_rule_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '打分规则列表json(List<ScoringRuleVO>的json)',
`member_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '仿真内所有成员',
`player_id_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '参演的仿真成员id列表Json',
`failure_condition_json` varchar(555) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '实训失败判定条件',
`creator_id` bigint NULL DEFAULT NULL COMMENT '创建者',
`create_time` datetime NULL DEFAULT NULL,
`update_time` datetime NULL DEFAULT NULL,
`state` int NULL DEFAULT NULL COMMENT '已发布实训的状态(0-默认未知1-上架2-下架)',
`final_scenes_json` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '实训编制后的最终场景json数据',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 24 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -0,0 +1,36 @@
/*
Navicat Premium Data Transfer
Source Server : room
Source Server Type : MySQL
Source Server Version : 80029
Source Host : 192.168.3.233:3306
Source Schema : joylink
Target Server Type : MySQL
Target Server Version : 80029
File Encoding : 65001
Date: 15/09/2022 14:08:08
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for trace_training2
-- ----------------------------
DROP TABLE IF EXISTS `trace_training2`;
CREATE TABLE `trace_training2` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '实训草稿-已发布追踪表记录id',
`draft_id` bigint NULL DEFAULT NULL COMMENT 'draft_training2主键',
`draft_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '实训草稿名称',
`draft_map_id` bigint NULL DEFAULT NULL COMMENT '实训草稿地图id',
`pub_id` bigint NULL DEFAULT NULL COMMENT 'published_training2主键',
`pub_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '已发布实训名称',
`trace_creator_id` bigint NULL DEFAULT NULL COMMENT '追踪轨迹生成者即发布操作者',
`trace_time` datetime NULL DEFAULT NULL COMMENT '追踪轨迹生成时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -0,0 +1,33 @@
/*
Navicat Premium Data Transfer
Source Server : room
Source Server Type : MySQL
Source Server Version : 80029
Source Host : 192.168.3.233:3306
Source Schema : joylink
Target Server Type : MySQL
Target Server Version : 80029
File Encoding : 65001
Date: 19/09/2022 14:54:30
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for draft_map_dis_station
-- ----------------------------
DROP TABLE IF EXISTS `draft_map_dis_station`;
CREATE TABLE `draft_map_dis_station` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '调度台逻辑数据记录id',
`map_id` bigint NULL DEFAULT NULL COMMENT '所属地图id',
`code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '调度台编码',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '调度台名称',
`station_list` varchar(600) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '调度台下辖车站的code列表array json',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -0,0 +1,194 @@
[20220923-wei-project.sql]
create TABLE `project` (
`id` int NOT NULL AUTO_INCREMENT comment '数据库唯一ID',
`mark_key` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL comment '项目标识key,前端使用',
`code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL comment '项目编码,后端使用',
`name` varchar(255) DEFAULT NULL comment '项目名称',
`name_en` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL comment '项目英文名称',
`simple_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL comment '项目简称',
`create_time` datetime DEFAULT NULL comment '创建时间',
`update_time` datetime DEFAULT NULL comment '修改时间',
`status` int NOT NULL comment '项目标识状态',
`view_setting` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci comment '前端界面设置',
`view_show` int NOT NULL DEFAULT '1' comment '是否供前端选择',
`server_setting` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci comment '后端服务设置',
PRIMARY KEY (`id`),
KEY `mark_key` (`mark_key`) USING BTREE,
KEY `code` (`code`),
KEY `view_show` (`view_show`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'login', 'DEFAULT','城市轨道交通实训平台',' Urban Rail Transit Practical Training Platform'
,'','{"login":{"loginInfo":{"title":"城市轨道交通实训平台","titleEn":" Urban Rail Transit Practical Training Platform","loginPath":"/login","loginParam":"DEFAULT","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login"},"design":{"loginInfo":{"title":"城市轨道交通设计平台","titleEn":" Urban Rail Transit Design Platform","loginPath":"/design/login","loginParam":"DEFAULT","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login"}}','{"defaultProject":1,"loginCreateSimulation":0}', 0
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'xty', 'XTY','西安铁路职业技术学院城市轨道交通实训平台',''
,'西铁院','{"login":{"loginInfo":{"title":"西安铁路职业技术学院城市轨道交通实训平台","loginPath":"/login?project=xty","loginParam":"XTY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"013"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=xty"},"design":{"loginInfo":{"title":"西安铁路职业技术学院城市轨道交通设计平台","loginPath":"/design/login?project=xty","loginParam":"XTY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"013"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=xty"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'gzb', 'GZB','贵州装备制造职业学院城市轨道交通实训平台',''
,'贵州装备','{"login":{"loginInfo":{"title":"贵州装备制造职业学院城市轨道交通实训平台","loginPath":"/login?project=gzb","loginParam":"GZB","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"014"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=gzb"},"design":{"loginInfo":{"title":"贵州装备制造职业学院城市轨道交通设计平台","loginPath":"/design/login?project=gzb","titleDistance":"-150px","loginParam":"GZB","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"014"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=gzb"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'xadt', 'XADT','城市轨道交通实训平台',''
,'西安地铁','{"login":{"loginInfo":{"title":"城市轨道交通实训平台","logoWidth":"60px","loginTitle":"运营一中心","homeTitle":"运营一中心","browserTitle":"西安地铁运营一中心城市轨道交通实训平台","loginPath":"/login?project=xadt","loginParam":"XADT","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"012"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=xadt"},"design":{"loginInfo":{"title":"城市轨道交通设计平台","logoWidth":"60px","loginTitle":"运营一中心","homeTitle":"运营一中心","browserTitle":"西安地铁运营一中心城市轨道交通设计平台","loginPath":"/design/login?project=xadt","loginParam":"XADT","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"012"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=xadt"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'heb', 'HEB','城市轨道交通综合行车模拟仿真系统V1.0',''
,'哈尔滨','{"login":{"loginInfo":{"title":"城市轨道交通综合行车模拟仿真系统V1.0","loginTitle":"城市轨道交通综合行车模拟仿真系统V1.0","logoWidth":"140px","loginPath":"/login?project=heb","titleDistance":"150px","bottomColumn":"哈尔滨盈达科技有限公司 联系电话:0451-87001273","loginParam":"HEB","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"019"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":1,"noSimulationQrCode":1,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=heb"},"design":{"loginInfo":{"title":"城市轨道交通设计平台V1.0","loginTitle":"城市轨道交通设计平台V1.0","logoWidth":"140px","titleDistance":"150px","loginPath":"/design/login?project=heb","bottomColumn":"哈尔滨盈达科技有限公司 联系电话:0451-87001273","loginParam":"HEB","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"019"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":1,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=heb"}}','{"defaultProject":1,"loginCreateSimulation":0,"controlDevice":1}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'nty', 'NTY','城轨高级信号系统(云平台通用版)',''
,'南铁院(通用版)','{"login":{"loginInfo":{"title":"城轨高级信号系统(云平台通用版)","loginPath":"/login?project=nty","loginParam":"NTY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=nty"},"design":{"loginInfo":{"title":"城轨高级信号设计系统(云平台通用版)","loginPath":"/design/login?project=nty","loginParam":"NTY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=nty"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'ntyc', 'NTYC','城轨高级信号系统(云平台专用版)',''
,'南铁院(专用版)','{"login":{"loginInfo":{"title":"城轨高级信号系统(云平台专用版)","loginPath":"/login?project=ntyc","loginParam":"NTYC","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=ntyc"},"design":{"loginInfo":{"title":"城轨高级信号设计系统(云平台专用版)","loginPath":"/design/login?project=ntyc","loginParam":"NTYC","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=ntyc"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'ntyl', 'NTYL','城轨高级信号系统(本地专用版)',''
,'南铁院(本地版)','{"login":{"loginInfo":{"title":"城轨高级信号系统(本地专用版)","loginPath":"/login?project=ntyl","loginParam":"NTYL","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":1,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=ntyl"},"design":{"loginInfo":{"title":"城轨高级信号设计系统(本地专用版)","loginPath":"/design/login?project=ntyl","loginParam":"NTYL","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":1,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=ntyl"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'sdy', 'SDY','江苏电子信息职业学院城市轨道交通实训平台',''
,'苏电院','{"login":{"loginInfo":{"title":"江苏电子信息职业学院城市轨道交通实训平台","loginPath":"/login?project=sdy","loginParam":"SDY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"021"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=sdy"},"design":{"loginInfo":{"title":"江苏电子信息职业学院城市轨道交通设计平台","loginPath":"/design/login?project=sdy","loginParam":"SDY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"021"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=sdy"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'bjd', 'BJD','城市轨道交通列车运行智慧辅助系统',''
,'北交大','{"login":{"loginInfo":{"title":"城市轨道交通列车运行智慧辅助系统","loginPath":"/login?project=bjd","logoWidth":"400px","bottomIcon":"@/assets/icon/favicon_bjd.png","bottomColumn":"","loginTitle":"空串","linkIcon":"@/assets/icon/link_bjd.png","loginParam":"BJD","navigationLogoWidth":"160px","navigationMarginLeft":"175px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":1,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=bjd"},"design":{"loginInfo":{"title":"城市轨道交通列车运行智慧辅助系统","loginPath":"/design/login?project=bjd","logoWidth":"400px","bottomIcon":"@/assets/icon/favicon_bjd.png","bottomColumn":"","linkIcon":"","loginParam":"BJD","navigationLogoWidth":"160px","navigationMarginLeft":"175px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=bjd"}}','{"defaultProject":1,"loginCreateSimulation":1, "createSimulationPermission":1}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'cgy', 'CGY','成都工业职业技术学院线网车站运营虚拟仿真实训中心',''
,'成都工业','{"login":{"loginInfo":{"title":"成都工业职业技术学院线网车站运营虚拟仿真实训中心","loginPath":"/login?project=cgy","loginParam":"CGY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":1,"noSimulationQrCode":0,"registerCode":1,"contectUs":0,"contectInfo":{},"noCopyRight":0},"design":{"loginInfo":{"title":"成都工业职业技术学院轨道交通虚拟仿真设计平台","loginPath":"/design/login?project=cgy","loginParam":"CGY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":1,"noSimulationQrCode":0,"registerCode":1,"contectUs":0,"contectInfo":{},"noCopyRight":0}}','{"defaultProject":1,"loginCreateSimulation":0,"freeSource":1}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'wjls', 'WJLS','微机联锁仿真系统',''
,'微机联锁','{"login":{"loginInfo":{"title":"微机联锁仿真系统","loginPath":"/login?project=wjls","loginParam":"WJLS","loginTitle":"空串","navigationLogoWidth":"40px","navigationMarginLeft":"60px","logoWidth":"0","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0},"design":{"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}}','{"defaultProject":1,"loginCreateSimulation":1,"createLocalSimulation":1,"defaultMemberId":"2"}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'drts', 'DRTS','全国行车调度员大赛训练系统',''
,'调度大赛','{"login":{"loginInfo":{"title":"全国行车调度员大赛训练系统","loginPath":"/login?project=drts","loginParam":"DRTS","loginTitle":"空串","navigationLogoWidth":"40px","navigationMarginLeft":"60px","logoWidth":"0","systemType":"020"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0},"design":{"loginInfo":{"title":"行车调度员设计平台国赛备战版","loginPath":"/design/login?project=drts","loginParam":"DRTS","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"020"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}}','{"defaultProject":1,"loginCreateSimulation":1,"mapNeedCharge":1}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'zzwwtest', 'ZZWWTEST','共赢列车仿真驾驶系统',''
,'郑州共赢考试','{"login":{"loginInfo":{"title":"共赢列车仿真驾驶系统","loginPath":"/login?project=zzwwtest","loginParam":"ZZWWTEST","loginTitle":"空串","logoWidth":"140px","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0},"design":{"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'richor', 'RICHOR','中航锐创城市轨道交通实训平台',''
,'中航锐创','{"login":{"loginInfo":{"title":"中航锐创城市轨道交通实训平台","loginPath":"/login?project=richor","loginParam":"RICHOR","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","navigationLogoWidth":"40px","navigationMarginLeft":"50px","systemType":"022"},"thirdLogin":1,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1},"design":{"thirdLogin":1,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'zzww', 'ZZWW','共赢列车仿真驾驶系统',''
,'郑州共赢','{"login":{"loginInfo":{"title":"共赢列车仿真驾驶系统","loginPath":"/login?project=zzww","loginParam":"ZZWW","loginTitle":"空串","logoWidth":"140px","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0},"design":{"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}}','{"defaultProject":1,"loginCreateSimulation":0,"freeSource":1,"defaultLoadTrain":1}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'richorlesson3d', 'RICHOR','中航锐创城市轨道交通实训平台',''
,'中航锐创(三维课程)','{"login":{"loginInfo":{"title":"中航锐创城市轨道交通实训平台","loginPath":"/login?project=richorlesson3d","loginParam":"RICHOR","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","navigationLogoWidth":"40px","navigationMarginLeft":"50px","systemType":"022"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0},"design":{"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'nologo', 'NOLOGO','城市轨道交通实训平台',''
,'无logo','{"login":{"loginInfo":{"title":"城市轨道交通实训平台","loginPath":"/login?project=nologo","loginParam":"NOLOGO","bottomColumn":"","navigationLogoWidth":"10px","navigationMarginLeft":"10px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=nologo"},"design":{"loginInfo":{"title":"城市轨道交通设计平台","loginPath":"/design/login?project=nologo","loginParam":"NOLOGO","bottomColumn":"","navigationLogoWidth":"10px","navigationMarginLeft":"10px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=nologo"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'richorjoint', 'RICHOR_JOINT','中航锐创城市轨道交通实训平台',''
,'中航锐创(实训室)','{"login":{"loginInfo":{"title":"中航锐创城市轨道交通实训平台","loginPath":"/login?project=richorjoint","loginParam":"RICHOR_JOINT","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","navigationLogoWidth":"40px","navigationMarginLeft":"50px","systemType":"023"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"cctvUrl":"http://192.168.1.254","otherPlatformUrl":"/design/login?project=richorjoint"},"design":{"loginInfo":{"title":"中航锐创城市轨道交通设计平台","loginPath":"/design/login?project=richorjoint","loginParam":"RICHOR_JOINT","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","navigationLogoWidth":"40px","navigationMarginLeft":"50px","systemType":"023"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=richorjoint"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'srsandbox', 'SR_SANDBOX','上饶科技中等专业学校城市轨道交通实训平台',''
,'上饶沙盘','{"login":{"loginInfo":{"title":"上饶科技中等专业学校城市轨道交通实训平台","loginPath":"/login?project=srsandbox","loginParam":"SR_SANDBOX","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"024"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=srsandbox"},"design":{"loginInfo":{"title":"上饶科技中等专业学校城市轨道交通设计平台","loginPath":"/design/login?project=srsandbox","loginParam":"SR_SANDBOX","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"024"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=srsandbox"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'jxgm', 'JXGM','江西工业贸易职业技术学院城市轨道交通实训平台',''
,'江西工贸','{"login":{"loginInfo":{"title":"江西工业贸易职业技术学院城市轨道交通实训平台","loginPath":"/login?project=jxgm","loginParam":"JXGM","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"024"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=jxgm"},"design":{"loginInfo":{"title":"江西工业贸易职业技术学院城市轨道交通设计平台","loginPath":"/design/login?project=jxgm","loginParam":"JXGM","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"025"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=jxgm"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'richorygy', 'RICHOR_YGY','扬州工业职业技术学院城市轨道交通实训平台',''
,'扬州工业','{"login":{"loginInfo":{"title":"扬州工业职业技术学院城市轨道交通实训平台","loginPath":"/login?project=richorygy","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_YGY","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":1,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1},"design":{"loginInfo":{"title":"扬州工业职业技术学院城市轨道交通设计平台","loginPath":"/design/login?project=richorygy","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_YGY","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":1,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'say', 'SAY','江苏安全技术职业学院城市轨道交通实训平台',''
,'苏安院','{"login":{"loginInfo":{"title":"江苏安全技术职业学院城市轨道交通实训平台","loginPath":"/login?project=say","loginParam":"SAY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"026"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=say"},"design":{"loginInfo":{"title":"江苏安全技术职业学院城市轨道交通设计平台","loginPath":"/design/login?project=say","loginParam":"SAY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"026"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=say"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'unittecsty', 'UNITTEC_STY','轨道交通实训平台',''
,'众合-陕铁院','{"login":{"loginInfo":{"title":"轨道交通实训平台","loginPath":"/login?project=unittecsty","loginParam":"UNITTEC_STY","titleDistance":"-150px","titleIcon":"@/assets/icon/link_unittec.png","linkIcon":"@/assets/icon/link_unittec.png","titleImgWidth":"250px","navigationLogoWidth":"60px","navigationMarginLeft":"80px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=unittecsty"},"design":{"loginInfo":{"title":"轨道交通设计平台","loginPath":"/design/login?project=unittecsty","loginParam":"UNITTEC_STY","titleDistance":"-150px","titleIcon":"@/assets/icon/link_unittec.png","linkIcon":"@/assets/icon/link_unittec.png","titleImgWidth":"250px","navigationLogoWidth":"60px","navigationMarginLeft":"80px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=unittecsty"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'richorhhcj', 'RICHOR_HHCJ','红河财经学校城市轨道交通实训平台',''
,'红河财经','{"login":{"loginInfo":{"title":"红河财经学校城市轨道交通实训平台","loginPath":"/login?project=richorhhcj","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_HHCJ","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"027"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1,"cctvUrl":"http://192.168.0.254","otherPlatformUrl":"/design/login?project=richorhhcj"},"design":{"loginInfo":{"title":"红河财经学校城市轨道交通设计平台","loginPath":"/design/login?project=richorhhcj","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_HHCJ","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"027"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1,"otherPlatformUrl":"/login?project=richorhhcj"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'richorcxjs', 'RICHOR_CXJS','长兴技师学院城市轨道交通实训平台',''
,'长兴技校','{"login":{"loginInfo":{"title":"长兴技师学院城市轨道交通实训平台","loginPath":"/login?project=richorcxjs","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_CXJS","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"027"},"thirdLogin":1,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1},"design":{"loginInfo":{"title":"长兴技师学院城市轨道交通设计平台","loginPath":"/design/login?project=richorcxjs","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_CXJS","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":1,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'yjddzh', 'YJDDZH','应急调度指挥系统',''
,'武汉8号线','{"login":{"loginInfo":{"title":"应急调度指挥系统","loginPath":"/login?project=yjddzh","loginParam":"YJDDZH","loginTitle":"空串","navigationLogoWidth":"40px","navigationMarginLeft":"60px","logoWidth":"0","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0},"design":{"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'teaching', 'TEACHING','教学通用实训平台',''
,'教学通用','{"login":{"loginInfo":{"title":"教学通用实训平台","loginPath":"/login?project=teaching","loginParam":"TEACHING","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"028"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=teaching"},"design":{"loginInfo":{"title":"教学通用设计平台","loginPath":"/design/login?project=teaching","loginParam":"TEACHING","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"028"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=teaching"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'hydrailway', 'HYD_RAILWAY','大铁交通综合行车模拟仿真系统V1.0',''
,'哈盈达大铁','{"login":{"loginInfo":{"title":"大铁交通综合行车模拟仿真系统V1.0","loginTitle":"空串","logoWidth":"140px","loginPath":"/login?project=hydrailway","bottomColumn":"哈尔滨盈达科技有限公司 联系电话:0451-87001273","loginParam":"HYD_RAILWAY","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=hydrailway"},"design":{"loginInfo":{"title":"大铁交通设计平台V1.0","loginTitle":"空串","logoWidth":"140px","loginPath":"/login?project=hydrailway","bottomColumn":"哈尔滨盈达科技有限公司 联系电话:0451-87001273","loginParam":"HYD_RAILWAY","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=hydrailway"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);

15
sql/20220921-zhouyin.sql Normal file
View File

@ -0,0 +1,15 @@
-- 新题库
DROP TABLE IF EXISTS `rts_paper_question`;
CREATE TABLE `rts_paper_question` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
`type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '类型 选择题=select,判断题=judge,多选题=multi',
`question` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '问题内容',
`create_user_id` bigint DEFAULT NULL COMMENT '创建者id',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`org_id` bigint DEFAULT NULL COMMENT '公司组织id',
`tags` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '标签',
`question_option` varchar(612) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '问题选项',
`question_answer` varchar(255) DEFAULT NULL COMMENT '答案,号隔开',
`is_del` int DEFAULT '0' COMMENT '是否删除0=否1=是',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

View File

@ -0,0 +1,154 @@
drop table IF EXISTS `project`;
create TABLE `project` (
`id` int NOT NULL AUTO_INCREMENT comment '数据库唯一ID',
`code` varchar(50) CHARACTER SET utf8mb4 NOT NULL comment '项目编码',
`name` varchar(255) DEFAULT NULL comment '项目名称',
`name_en` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL comment '项目英文名称',
`simple_name` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL comment '项目简称',
`create_time` datetime DEFAULT NULL comment '创建时间',
`update_time` datetime DEFAULT NULL comment '修改时间',
`status` int NOT NULL comment '项目标识状态',
`view_show` int NOT NULL DEFAULT '1' comment '是否供前端选择',
`server_setting` text CHARACTER SET utf8mb4 comment '后端服务设置',
PRIMARY KEY (`id`),
KEY `code` (`code`),
KEY `view_show` (`view_show`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4;
drop table IF EXISTS `project_view`;
create TABLE `project_view` (
`id` int NOT NULL AUTO_INCREMENT comment '主键',
`view_setting` text comment '前端界面设置',
`mark_key` varchar(255) CHARACTER SET utf8mb4 NOT NULL comment '前端标识key',
`project` varchar(255) CHARACTER SET utf8mb4 NOT NULL comment '对应项目',
`create_time` datetime DEFAULT NULL comment '创建时间',
`update_time` datetime DEFAULT NULL comment '修改时间',
`status` int DEFAULT '1' comment '状态',
PRIMARY KEY (`id`),
UNIQUE KEY `mark_key` (`mark_key`,`status`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4;
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('DEFAULT','城市轨道交通实训平台',' Urban Rail Transit Practical Training Platform','','{"defaultProject":1,"loginCreateSimulation":0}',0,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('XTY','西安铁路职业技术学院城市轨道交通实训平台','','西铁院','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('GZB','贵州装备制造职业学院城市轨道交通实训平台','','贵州装备','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('XADT','城市轨道交通实训平台','','西安地铁','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('HEB','城市轨道交通综合行车模拟仿真系统V1.0','','哈尔滨','{"defaultProject":0,"loginCreateSimulation":0,"controlDevice":1}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('NTY','城轨高级信号系统(云平台通用版)','','南铁院(通用版)','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('NTYC','城轨高级信号系统(云平台专用版)','','南铁院(专用版)','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('NTYL','城轨高级信号系统(本地专用版)','','南铁院(本地版)','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('SDY','江苏电子信息职业学院城市轨道交通实训平台','','苏电院','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('BJD','城市轨道交通列车运行智慧辅助系统','','北交大','{"defaultProject":0,"loginCreateSimulation":1, "createSimulationPermission":1}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('CGY','成都工业职业技术学院线网车站运营虚拟仿真实训中心','','成都工业','{"defaultProject":0,"loginCreateSimulation":0,"freeSource":1}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('WJLS','微机联锁仿真系统','','微机联锁','{"defaultProject":0,"loginCreateSimulation":1,"createLocalSimulation":1,"defaultMemberId":"2"}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('DRTS','全国行车调度员大赛训练系统','','调度大赛','{"defaultProject":0,"loginCreateSimulation":1,"mapNeedCharge":1}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('ZZWWTEST','共赢列车仿真驾驶系统','','郑州共赢考试','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('RICHOR','中航锐创城市轨道交通实训平台','','中航锐创','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('ZZWW','共赢列车仿真驾驶系统','','郑州共赢','{"defaultProject":0,"loginCreateSimulation":0,"freeSource":1,"defaultLoadTrain":1}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('NOLOGO','城市轨道交通实训平台','','无logo','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('RICHOR_JOINT','中航锐创城市轨道交通实训平台','','中航锐创(实训室)','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('SR_SANDBOX','上饶科技中等专业学校城市轨道交通实训平台','','上饶沙盘','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('JXGM','江西工业贸易职业技术学院城市轨道交通实训平台','','江西工贸','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('RICHOR_YGY','扬州工业职业技术学院城市轨道交通实训平台','','扬州工业','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('SAY','江苏安全技术职业学院城市轨道交通实训平台','','苏安院','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('UNITTEC_STY','轨道交通实训平台','','众合-陕铁院','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('RICHOR_HHCJ','红河财经学校城市轨道交通实训平台','','红河财经','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('RICHOR_CXJS','长兴技师学院城市轨道交通实训平台','','长兴技校','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('YJDDZH','应急调度指挥系统','','武汉8号线','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('TEACHING','教学通用实训平台','','教学通用','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('HYD_RAILWAY','大铁交通综合行车模拟仿真系统V1.0','','哈盈达大铁','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('xty','XTY','{"loginInfo":{"title":"西安铁路职业技术学院城市轨道交通实训平台","loginPath":"/login?project=xty","loginParam":"XTY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"013"},"projectIcon":"@/assets/icon/favicon_xty.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=xty"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('zzww','ZZWW','{"loginInfo":{"title":"共赢列车仿真驾驶系统","loginPath":"/login?project=zzww","loginParam":"ZZWW","loginTitle":"空串","logoWidth":"140px","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_zzww.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('xzexam','SAY','{"loginInfo":{"title":"城市轨道交通标准化培训软件","loginPath":"/login?project=xzexam","loginParam":"SAY","loginTitle":"空串","logoWidth":"140px","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"011"},"projectIcon":"@/assets/icon/transparent.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('zzwwtest','ZZWWTEST','{"loginInfo":{"title":"共赢列车仿真驾驶系统","loginPath":"/login?project=zzwwtest","loginParam":"ZZWWTEST","loginTitle":"空串","logoWidth":"140px","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_zzww.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('bjd','BJD','{"loginInfo":{"title":"城市轨道交通列车运行智慧辅助系统","loginPath":"/login?project=bjd","logoWidth":"400px","bottomIcon":"@/assets/icon/favicon_bjd.png","bottomColumn":"","loginTitle":"空串","linkIcon":"@/assets/icon/link_bjd.png","loginParam":"BJD","navigationLogoWidth":"160px","navigationMarginLeft":"175px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_bjd.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":1,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=bjd"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('sdy','SDY','{"loginInfo":{"title":"江苏电子信息职业学院城市轨道交通实训平台","loginPath":"/login?project=sdy","loginParam":"SDY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"021"},"projectIcon":"@/assets/icon/favicon_jdy.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=sdy"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('ntyc','NTYC','{"loginInfo":{"title":"城轨高级信号系统(云平台专用版)","loginPath":"/login?project=ntyc","loginParam":"NTYC","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_nty.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=ntyc"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('ntyl','NTYL','{"loginInfo":{"title":"城轨高级信号系统(本地专用版)","loginPath":"/login?project=ntyl","loginParam":"NTYL","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_nty.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":1,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=ntyl"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('nty','NTY','{"loginInfo":{"title":"城轨高级信号系统(云平台通用版)","loginPath":"/login?project=nty","loginParam":"NTY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_nty.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=nty"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('login','DEFAULT','{"loginInfo":{"title":"城市轨道交通实训平台","titleEn":" Urban Rail Transit Practical Training Platform","loginPath":"/login","loginParam":"DEFAULT","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('design','DEFAULT','{"loginInfo":{"title":"城市轨道交通设计平台","titleEn":" Urban Rail Transit Design Platform","loginPath":"/design/login","loginParam":"DEFAULT","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('wjls','WJLS','{"loginInfo":{"title":"微机联锁仿真系统","loginPath":"/login?project=wjls","loginParam":"WJLS","loginTitle":"空串","navigationLogoWidth":"40px","navigationMarginLeft":"60px","logoWidth":"0","systemType":"011"},"projectIcon":"@/assets/icon/favicon.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('drts','DRTS','{"loginInfo":{"title":"全国行车调度员大赛训练系统","loginPath":"/login?project=drts","loginParam":"DRTS","loginTitle":"空串","navigationLogoWidth":"40px","navigationMarginLeft":"60px","logoWidth":"0","systemType":"020"},"projectIcon":"@/assets/icon/favicon.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designdrts','DRTS','{"loginInfo":{"title":"行车调度员设计平台国赛备战版","loginPath":"/design/login?project=drts","loginParam":"DRTS","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"020"},"projectIcon":"@/assets/icon/favicon.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('yjddzh','YJDDZH','{"loginInfo":{"title":"应急调度指挥系统","loginPath":"/login?project=yjddzh","loginParam":"YJDDZH","loginTitle":"空串","navigationLogoWidth":"40px","navigationMarginLeft":"60px","logoWidth":"0","systemType":"011"},"projectIcon":"@/assets/icon/favicon.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('hlsdrts','DRTS','{"loginInfo":{"title":"城轨国赛竞赛系统","loginPath":"/login?project=hlsdrts","loginParam":"DRTS","logoWidth":"300px","linkIcon":"@/assets/icon/link_hls.png","loginTitle":"空串","navigationLogoWidth":"180px","navigationMarginLeft":"195px","systemType":"020"},"projectIcon":"@/assets/icon/favicon_hls.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designbjd','BJD','{"loginInfo":{"title":"城市轨道交通列车运行智慧辅助系统","loginPath":"/design/login?project=bjd","logoWidth":"400px","bottomIcon":"@/assets/icon/favicon_bjd.png","bottomColumn":"","linkIcon":"","loginParam":"BJD","navigationLogoWidth":"160px","navigationMarginLeft":"175px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_bjd.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=bjd"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designhlsdrts','DRTS','{"loginInfo":{"title":"城轨国赛竞赛系统","loginPath":"/design/login?project=hlsdrts","loginParam":"DRTS","logoWidth":"300px","linkIcon":"@/assets/icon/link_hls.png","loginTitle":"空串","navigationLogoWidth":"180px","navigationMarginLeft":"195px","systemType":"020"},"projectIcon":"@/assets/icon/favicon_hls.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designxty','XTY','{"loginInfo":{"title":"西安铁路职业技术学院城市轨道交通设计平台","loginPath":"/design/login?project=xty","loginParam":"XTY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"013"},"projectIcon":"@/assets/icon/favicon_xty.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=xty"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designntyl','NTYL','{"loginInfo":{"title":"城轨高级信号设计系统(本地专用版)","loginPath":"/design/login?project=ntyl","loginParam":"NTYL","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_nty.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":1,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=ntyl"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designntyc','NTYC','{"loginInfo":{"title":"城轨高级信号设计系统(云平台专用版)","loginPath":"/design/login?project=ntyc","loginParam":"NTYC","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_nty.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=ntyc"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designsdy','SDY','{"loginInfo":{"title":"江苏电子信息职业学院城市轨道交通设计平台","loginPath":"/design/login?project=sdy","loginParam":"SDY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"021"},"projectIcon":"@/assets/icon/favicon_jdy.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=sdy"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designnty','NTY','{"loginInfo":{"title":"城轨高级信号设计系统(云平台通用版)","loginPath":"/design/login?project=nty","loginParam":"NTY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_nty.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=nty"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('gzb','GZB','{"loginInfo":{"title":"贵州装备制造职业学院城市轨道交通实训平台","loginPath":"/login?project=gzb","loginParam":"GZB","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"014"},"projectIcon":"@/assets/icon/favicon_gzb.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=gzb"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designgzb','GZB','{"loginInfo":{"title":"贵州装备制造职业学院城市轨道交通设计平台","loginPath":"/design/login?project=gzb","titleDistance":"-150px","loginParam":"GZB","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"014"},"projectIcon":"@/assets/icon/favicon_gzb.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=gzb"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designcgy','CGY','{"loginInfo":{"title":"成都工业职业技术学院轨道交通虚拟仿真设计平台","loginPath":"/design/login?project=cgy","loginParam":"CGY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_cgy.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":1,"noSimulationQrCode":0,"registerCode":1,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('heb','HEB','{"loginInfo":{"title":"城市轨道交通综合行车模拟仿真系统V1.0","loginTitle":"城市轨道交通综合行车模拟仿真系统V1.0","logoWidth":"140px","loginPath":"/login?project=heb","titleDistance":"150px","bottomColumn":"哈尔滨盈达科技有限公司 联系电话:0451-87001273","loginParam":"HEB","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"019"},"projectIcon":"@/assets/icon/favicon_hyd.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":1,"noSimulationQrCode":1,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=heb"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('hyd','DEFAULT','{"loginInfo":{"title":"城市轨道交通综合行车模拟仿真系统V1.0","loginTitle":"空串","logoWidth":"140px","loginPath":"/login?project=hyd","bottomColumn":"哈尔滨盈达科技有限公司 联系电话:0451-87001273","loginParam":"DEFAULT","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_hyd.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=hyd"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designheb','HEB','{"loginInfo":{"title":"城市轨道交通设计平台V1.0","loginTitle":"城市轨道交通设计平台V1.0","logoWidth":"140px","titleDistance":"150px","loginPath":"/design/login?project=heb","bottomColumn":"哈尔滨盈达科技有限公司 联系电话:0451-87001273","loginParam":"HEB","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"019"},"projectIcon":"@/assets/icon/favicon_hyd.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":1,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=heb"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designhyd','DEFAULT','{"loginInfo":{"title":"城市轨道交通设计平台V1.0","loginTitle":"空串","logoWidth":"140px","loginPath":"/design/login?project=hyd","bottomColumn":"哈尔滨盈达科技有限公司 联系电话:0451-87001273","loginParam":"DEFAULT","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_hyd.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=hyd"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('cgy','CGY','{"loginInfo":{"title":"成都工业职业技术学院线网车站运营虚拟仿真实训中心","loginPath":"/login?project=cgy","loginParam":"CGY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_cgy.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":1,"noSimulationQrCode":0,"registerCode":1,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('hydrailway','HYD_RAILWAY','{"loginInfo":{"title":"大铁交通综合行车模拟仿真系统V1.0","loginTitle":"空串","logoWidth":"140px","loginPath":"/login?project=hydrailway","bottomColumn":"哈尔滨盈达科技有限公司 联系电话:0451-87001273","loginParam":"HYD_RAILWAY","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_hyd.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=hydrailway"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designhydrailway','HYD_RAILWAY','{"loginInfo":{"title":"大铁交通设计平台V1.0","loginTitle":"空串","logoWidth":"140px","loginPath":"/login?project=hydrailway","bottomColumn":"哈尔滨盈达科技有限公司 联系电话:0451-87001273","loginParam":"HYD_RAILWAY","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_hyd.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=hydrailway"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('xadt','XADT','{"loginInfo":{"title":"城市轨道交通实训平台","logoWidth":"60px","loginTitle":"运营一中心","homeTitle":"运营一中心","browserTitle":"西安地铁运营一中心城市轨道交通实训平台","loginPath":"/login?project=xadt","loginParam":"XADT","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"012"},"projectIcon":"@/assets/icon/favicon_xas.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=xadt"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designxadt','XADT','{"loginInfo":{"title":"城市轨道交通设计平台","logoWidth":"60px","loginTitle":"运营一中心","homeTitle":"运营一中心","browserTitle":"西安地铁运营一中心城市轨道交通设计平台","loginPath":"/design/login?project=xadt","loginParam":"XADT","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"012"},"projectIcon":"@/assets/icon/favicon_xas.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=xadt"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('jyd','DEFAULT','{"loginInfo":{"title":"城市轨道交通实训平台","loginPath":"/login?project=jyd","logoWidth":"300px","navigationLogoWidth":"120px","navigationMarginLeft":"140px","loginTitle":"空串","bottomColumn":"","bottomIcon":"@/assets/icon/bottom_jyd.png","linkIcon":"@/assets/icon/link_jyd.png","loginParam":"DEFAULT","systemType":"011"},"projectIcon":"@/assets/icon/favicon_jyd.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=jyd"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designjyd','DEFAULT','{"loginInfo":{"title":"城市轨道交通设计平台","loginTitle":"空串","logoWidth":"300px","navigationLogoWidth":"120px","navigationMarginLeft":"140px","loginPath":"/design/login?project=jyd","bottomColumn":"","bottomIcon":"@/assets/icon/bottom_jyd.png","linkIcon":"@/assets/icon/link_jyd.png","loginParam":"DEFAULT","systemType":"011"},"projectIcon":"@/assets/icon/favicon_jyd.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=jyd"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('tky','DEFAULT','{"loginInfo":{"title":"城市轨道交通实训平台","loginPath":"/login?project=tky","loginTitle":"空串","bottomColumn":"","bottomIcon":"@/assets/icon/favicon_tky.png","loginParam":"DEFAULT","navigationLogoWidth":"75px","navigationMarginLeft":"90px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_tky.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=tky"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designtky','DEFAULT','{"loginInfo":{"title":"城市轨道交通设计平台","loginPath":"/design/login?project=tky","loginTitle":"空串","bottomIcon":"@/assets/icon/favicon_tky.png","bottomColumn":"","loginParam":"DEFAULT","navigationLogoWidth":"75px","navigationMarginLeft":"90px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_tky.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=tky"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('bxkc','DEFAULT','{"loginInfo":{"title":"城市轨道交通实训平台","loginPath":"/login?project=bxkc","loginTitle":"空串","logoWidth":"400px","bottomIcon":"@/assets/icon/favicon_bxkc.png","bottomColumn":"","linkIcon":"@/assets/icon/link_bxkc.png","loginParam":"DEFAULT","navigationLogoWidth":"160px","navigationMarginLeft":"175px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_bxkc.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=bxkc"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designbxkc','DEFAULT','{"loginInfo":{"title":"城市轨道交通设计平台","loginPath":"/design/login?project=bxkc","loginTitle":"空串","logoWidth":"400px","bottomIcon":"@/assets/icon/favicon_bxkc.png","bottomColumn":"","linkIcon":"@/assets/icon/link_bxkc.png","loginParam":"DEFAULT","navigationLogoWidth":"160px","navigationMarginLeft":"175px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_bxkc.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=bxkc"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('crsc','DEFAULT','{"loginInfo":{"title":"城市轨道交通实训平台","loginPath":"/login?project=crsc","loginTitle":"空串","logoWidth":"600px","bottomIcon":"@/assets/icon/favicon_crsc.png","bottomColumn":"","linkIcon":"@/assets/icon/link_crsc.png","titleIcon":"@/assets/icon/link_crsc.png","loginParam":"DEFAULT","navigationLogoWidth":"100px","navigationMarginLeft":"125px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_crsc.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=crsc"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designcrsc','DEFAULT','{"loginInfo":{"title":"城市轨道交通设计平台","loginPath":"/design/login?project=crsc","loginTitle":"空串","logoWidth":"600px","bottomIcon":"@/assets/icon/favicon_crsc.png","bottomColumn":"","linkIcon":"@/assets/icon/link_crsc.png","titleIcon":"@/assets/icon/link_crsc.png","loginParam":"DEFAULT","navigationLogoWidth":"100px","navigationMarginLeft":"125px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_crsc.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=crsc"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('richor','RICHOR','{"loginInfo":{"title":"中航锐创城市轨道交通实训平台","loginPath":"/login?project=richor","loginParam":"RICHOR","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","navigationLogoWidth":"40px","navigationMarginLeft":"50px","systemType":"022"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":1,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('richorlesson3d','RICHOR','{"loginInfo":{"title":"中航锐创城市轨道交通实训平台","loginPath":"/login?project=richorlesson3d","loginParam":"RICHOR","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","navigationLogoWidth":"40px","navigationMarginLeft":"50px","systemType":"022"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('hls','DEFAULT','{"loginInfo":{"title":"城市轨道交通实训平台","loginPath":"/login?project=hls","loginTitle":"空串","logoWidth":"300px","linkIcon":"@/assets/icon/link_hls.png","bottomColumn":"北京和利时系统工程有限公司","loginParam":"DEFAULT","navigationLogoWidth":"180px","navigationMarginLeft":"195px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_hls.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=hls"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designrichorjoint','RICHOR_JOINT','{"loginInfo":{"title":"中航锐创城市轨道交通设计平台","loginPath":"/design/login?project=richorjoint","loginParam":"RICHOR_JOINT","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","navigationLogoWidth":"40px","navigationMarginLeft":"50px","systemType":"023"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=richorjoint"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('richorjoint','RICHOR_JOINT','{"loginInfo":{"title":"中航锐创城市轨道交通实训平台","loginPath":"/login?project=richorjoint","loginParam":"RICHOR_JOINT","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","navigationLogoWidth":"40px","navigationMarginLeft":"50px","systemType":"023"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"cctvUrl":"http://192.168.1.254","otherPlatformUrl":"/design/login?project=richorjoint"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designhls','DEFAULT','{"loginInfo":{"title":"城市轨道交通设计平台","loginPath":"/design/login?project=hls","loginTitle":"空串","logoWidth":"300px","linkIcon":"@/assets/icon/link_hls.png","bottomColumn":"北京和利时系统工程有限公司","loginParam":"DEFAULT","navigationLogoWidth":"180px","navigationMarginLeft":"195px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_hls.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=hls"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designsrsandbox','SR_SANDBOX','{"loginInfo":{"title":"上饶科技中等专业学校城市轨道交通设计平台","loginPath":"/design/login?project=srsandbox","loginParam":"SR_SANDBOX","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"024"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=srsandbox"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designrichorygy','RICHOR_YGY','{"loginInfo":{"title":"扬州工业职业技术学院城市轨道交通设计平台","loginPath":"/design/login?project=richorygy","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_YGY","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":1,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('srsandbox','SR_SANDBOX','{"loginInfo":{"title":"上饶科技中等专业学校城市轨道交通实训平台","loginPath":"/login?project=srsandbox","loginParam":"SR_SANDBOX","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"024"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=srsandbox"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('richorygy','RICHOR_YGY','{"loginInfo":{"title":"扬州工业职业技术学院城市轨道交通实训平台","loginPath":"/login?project=richorygy","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_YGY","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":1,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('richorhhcj','RICHOR_HHCJ','{"loginInfo":{"title":"红河财经学校城市轨道交通实训平台","loginPath":"/login?project=richorhhcj","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_HHCJ","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"027"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1,"cctvUrl":"http://192.168.0.254","otherPlatformUrl":"/design/login?project=richorhhcj"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designrichorhhcj','RICHOR_HHCJ','{"loginInfo":{"title":"红河财经学校城市轨道交通设计平台","loginPath":"/design/login?project=richorhhcj","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_HHCJ","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"027"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1,"otherPlatformUrl":"/login?project=richorhhcj"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designrichorcxjs','RICHOR_CXJS','{"loginInfo":{"title":"长兴技师学院城市轨道交通设计平台","loginPath":"/design/login?project=richorcxjs","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_CXJS","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":1,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designjxgm','JXGM','{"loginInfo":{"title":"江西工业贸易职业技术学院城市轨道交通设计平台","loginPath":"/design/login?project=jxgm","loginParam":"JXGM","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"025"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=jxgm"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('richorcxjs','RICHOR_CXJS','{"loginInfo":{"title":"长兴技师学院城市轨道交通实训平台","loginPath":"/login?project=richorcxjs","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_CXJS","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"027"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":1,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designnologo','NOLOGO','{"loginInfo":{"title":"城市轨道交通设计平台","loginPath":"/design/login?project=nologo","loginParam":"NOLOGO","bottomColumn":"","navigationLogoWidth":"10px","navigationMarginLeft":"10px","systemType":"011"},"projectIcon":"@/assets/icon/transparent.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=nologo"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('jxgm','JXGM','{"loginInfo":{"title":"江西工业贸易职业技术学院城市轨道交通实训平台","loginPath":"/login?project=jxgm","loginParam":"JXGM","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"024"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=jxgm"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('nologo','NOLOGO','{"loginInfo":{"title":"城市轨道交通实训平台","loginPath":"/login?project=nologo","loginParam":"NOLOGO","bottomColumn":"","navigationLogoWidth":"10px","navigationMarginLeft":"10px","systemType":"011"},"projectIcon":"@/assets/icon/transparent.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=nologo"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('say','SAY','{"loginInfo":{"title":"江苏安全技术职业学院城市轨道交通实训平台","loginPath":"/login?project=say","loginParam":"SAY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"026"},"projectIcon":"@/assets/icon/favicon_say.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=say"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designsay','SAY','{"loginInfo":{"title":"江苏安全技术职业学院城市轨道交通设计平台","loginPath":"/design/login?project=say","loginParam":"SAY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"026"},"projectIcon":"@/assets/icon/favicon_say.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=say"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('unittecsty','UNITTEC_STY','{"loginInfo":{"title":"轨道交通实训平台","loginPath":"/login?project=unittecsty","loginParam":"UNITTEC_STY","titleDistance":"-150px","titleIcon":"@/assets/icon/link_unittec.png","linkIcon":"@/assets/icon/link_unittec.png","titleImgWidth":"250px","navigationLogoWidth":"60px","navigationMarginLeft":"80px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_unittec.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=unittecsty"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designunittecsty','UNITTEC_STY','{"loginInfo":{"title":"轨道交通设计平台","loginPath":"/design/login?project=unittecsty","loginParam":"UNITTEC_STY","titleDistance":"-150px","titleIcon":"@/assets/icon/link_unittec.png","linkIcon":"@/assets/icon/link_unittec.png","titleImgWidth":"250px","navigationLogoWidth":"60px","navigationMarginLeft":"80px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_unittec.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=unittecsty"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('teaching','TEACHING','{"loginInfo":{"title":"教学通用实训平台","loginPath":"/login?project=teaching","loginParam":"TEACHING","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"028"},"projectIcon":"@/assets/icon/favicon.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=teaching"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designteaching','TEACHING','{"loginInfo":{"title":"教学通用设计平台","loginPath":"/design/login?project=teaching","loginParam":"TEACHING","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"028"},"projectIcon":"@/assets/icon/favicon.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=teaching"}',NOW(),NOW(),1);

View File

@ -0,0 +1,4 @@
alter table `joylink`.`project`
drop COLUMN `name_en`,
CHANGE COLUMN `simple_name` `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL comment '项目简称' AFTER `code`,
CHANGE COLUMN `name` `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL comment '项目描述' AFTER `name`;

View File

@ -0,0 +1,11 @@
create TABLE `org_project` (
`id` int NOT NULL AUTO_INCREMENT comment '主键',
`org_id` int NOT NULL comment '组织ID',
`project_code` varchar(255) NOT NULL comment '项目编码',
`creator_id` int DEFAULT NULL comment '创建者',
`create_time` datetime DEFAULT NULL comment '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `org_id_2` (`org_id`,`project_code`),
KEY `org_id` (`org_id`),
KEY `project_code` (`project_code`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

View File

@ -0,0 +1,12 @@
create TABLE `minio_file_info` (
`id` bigint NOT NULL AUTO_INCREMENT comment '主键',
`title` varchar(255) DEFAULT NULL comment '文件展示名称',
`directory` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL comment '文件夹',
`file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL comment '存放文件名',
`create_time` datetime DEFAULT NULL comment '创建时间',
`creator` bigint DEFAULT NULL comment '创建者',
`status` int DEFAULT NULL comment '状态',
PRIMARY KEY (`id`),
KEY `type` (`directory`),
KEY `status` (`status`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

3
sql/20221010-zhouyin.sql Normal file
View File

@ -0,0 +1,3 @@
-- 新实训标添加组织id
alter table rts_published_training2 add column org_id bigint;

View File

@ -0,0 +1,89 @@
/*
Navicat Premium Data Transfer
Source Server : room
Source Server Type : MySQL
Source Server Version : 80029
Source Host : 192.168.3.233:3306
Source Schema : joylink
Target Server Type : MySQL
Target Server Version : 80029
File Encoding : 65001
Date: 12/10/2022 17:49:36
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for rts_paper_composition
-- ----------------------------
DROP TABLE IF EXISTS `rts_paper_composition`;
CREATE TABLE `rts_paper_composition` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '试卷蓝图id',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '试卷蓝图名称',
`profile` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '试卷蓝图简介',
`map_id` bigint NOT NULL COMMENT '对应的mapId',
`org_id` bigint DEFAULT NULL COMMENT '组织id',
`start_time` datetime DEFAULT NULL COMMENT '启用起始时间',
`end_time` datetime DEFAULT NULL COMMENT '启用截止时间',
`valid_duration` int DEFAULT NULL COMMENT '完成考试有效最长时长单位min',
`pass_score` int DEFAULT NULL COMMENT '及格分',
`full_score` int DEFAULT NULL COMMENT '满分',
`update_id` bigint DEFAULT NULL COMMENT '最后更新用户id',
`creator_id` bigint DEFAULT NULL COMMENT '创建者id',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`state` int DEFAULT NULL COMMENT '试卷蓝图状态1-正在编辑2-封存(不能修改)3-已经被使用(不能修改删除)定于见PaperCompositionState',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for rts_paper_rule
-- ----------------------------
DROP TABLE IF EXISTS `rts_paper_rule`;
CREATE TABLE `rts_paper_rule` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '试卷规则定义id',
`pc_id` bigint NULL DEFAULT NULL COMMENT 'paper_compostion的id',
`type` int NULL DEFAULT NULL COMMENT '试题类型1-理论题2-实训题',
`subType` int NULL DEFAULT NULL COMMENT '规则类型:理论题(1-单选题2-多选题3-判断题);实训题(4-单操实训5-场景实训)',
`tags` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '筛选题目的标签,即根据标签来筛选题目;List<String>的json',
`amount` int NULL DEFAULT NULL COMMENT '该类型题目数量',
`score` int NULL DEFAULT NULL COMMENT '每题分值',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for rts_paper_user
-- ----------------------------
DROP TABLE IF EXISTS `rts_paper_user`;
CREATE TABLE `rts_paper_user` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户试卷id',
`user_id` bigint NOT NULL COMMENT '用户id',
`pc_id` bigint NOT NULL COMMENT '生成用户试卷的paper_compostion的id',
`score` int NULL DEFAULT NULL COMMENT '用户最终得分',
`start_time` datetime NULL DEFAULT NULL COMMENT '用户开始做题时间',
`end_time` datetime NULL DEFAULT NULL COMMENT '用户结束做题时间',
`cause` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '原因',
`create_time` datetime NULL DEFAULT NULL COMMENT '用户试卷生成时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for rts_paper_user_question
-- ----------------------------
DROP TABLE IF EXISTS `rts_paper_user_question`;
CREATE TABLE `rts_paper_user_question` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户试卷试题结果id',
`pu_id` bigint NOT NULL COMMENT '用户试卷paper_user的id',
`org_id` bigint DEFAULT NULL COMMENT '组织id',
`type` int DEFAULT NULL COMMENT '试题类型1-理论题2-实训题',
`question_id` bigint NOT NULL COMMENT '试题id',
`state` int DEFAULT NULL COMMENT '试题状态1-未做(初始)2-答对3-答错4-时间到结束',
`tmp_answer` varchar(255) DEFAULT NULL COMMENT '临时答案内容',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=373 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -0,0 +1,2 @@
alter table `joylink`.`project`
ADD COLUMN `default_org` bigint NULL comment '默认组织ID' AFTER `server_setting`;

View File

@ -0,0 +1,2 @@
alter table `joylink`.`project_view`
drop index `mark_key`;

View File

@ -0,0 +1,10 @@
-- 实训草稿
rename TABLE draft_training2 to rts_draft_training2;
rename TABLE published_training2 to rts_published_training2;
-- 机构与项目关系
rename TABLE org_project to rts_org_project;
-- 项目
rename TABLE project to rts_project;
rename TABLE project_view to rts_project_view;
-- MINIO
rename TABLE minio_file_info to rts_minio_file_info;

View File

@ -0,0 +1,8 @@
alter table `joylink`.`rts_draft_training2`
ADD COLUMN `map_system` varchar(255) NULL comment '子系统' AFTER `map_id`,
ADD COLUMN `terminal` varchar(255) NULL comment '客户端标识' AFTER `map_system`;
alter table `joylink`.`rts_published_training2`
ADD COLUMN `map_system` varchar(255) NULL comment '子系统' AFTER `map_id`,
ADD COLUMN `terminal` varchar(255) NULL comment '客户端标识' AFTER `map_system`;

View File

@ -0,0 +1 @@
rename TABLE trace_training2 to rts_trace_training2;

View File

@ -0,0 +1,92 @@
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for rts_permission
-- ----------------------------
DROP TABLE IF EXISTS `rts_permission`;
CREATE TABLE `rts_permission` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '权限id,对功能(system_ability)的管理',
`project_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '对应的projectCode',
`map_id` bigint NULL DEFAULT NULL COMMENT '对应线路的mapId',
`permission_type` int NULL DEFAULT NULL COMMENT '权限类型 0=项目1=线路2=线路功能',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '权限名称',
`des` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '权限描述',
`creator_id` bigint NULL DEFAULT NULL COMMENT '创建者id',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`is_sync` tinyint(1) NULL DEFAULT NULL COMMENT '是否同步的数据',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2159 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for rts_permission_distribute
-- ----------------------------
DROP TABLE IF EXISTS `rts_permission_distribute`;
CREATE TABLE `rts_permission_distribute` (
`id` bigint NOT NULL AUTO_INCREMENT,
`map_id` bigint NULL DEFAULT NULL COMMENT '地图id',
`source_subject_id` bigint NULL DEFAULT NULL COMMENT '来源主体id',
`forever` tinyint(1) NULL DEFAULT NULL COMMENT '是否永久true/false',
`status` int NULL DEFAULT NULL COMMENT '权限分发状态,1-有效2-无效',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_time` datetime NULL DEFAULT NULL COMMENT '修改时间',
`start_time` datetime NULL DEFAULT NULL COMMENT '开始时间',
`end_time` datetime NULL DEFAULT NULL COMMENT '结束时间',
`creator_id` bigint NULL DEFAULT NULL COMMENT '创建者id',
`dsc` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注描述',
`is_sync` tinyint(1) NULL DEFAULT NULL COMMENT '是否同步的数据',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for rts_permission_distribute_ref
-- ----------------------------
DROP TABLE IF EXISTS `rts_permission_distribute_ref`;
CREATE TABLE `rts_permission_distribute_ref` (
`id` bigint NOT NULL AUTO_INCREMENT,
`distribute_id` bigint NULL DEFAULT NULL COMMENT '分发id',
`permission_id` bigint NULL DEFAULT NULL COMMENT '权限id',
`amount` int NULL DEFAULT NULL COMMENT '总数量',
`remains` int NULL DEFAULT NULL COMMENT '剩余数量',
`is_sync` tinyint(1) NULL DEFAULT NULL COMMENT '是否同步数据',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8615 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for rts_permission_subject
-- ----------------------------
DROP TABLE IF EXISTS `rts_permission_subject`;
CREATE TABLE `rts_permission_subject` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '权限主体id',
`permission_id` bigint NULL DEFAULT NULL COMMENT '访问权限id',
`subject_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '主体类型(user,org)',
`subject_id` bigint NULL DEFAULT NULL COMMENT '主体id',
`amount` int NULL DEFAULT NULL COMMENT '主体对该权限的总数量',
`remains` int NULL DEFAULT NULL COMMENT '主体对该权限的剩余数量',
`status` int NULL DEFAULT NULL COMMENT '权限主体状态,1Valid-有效2InValid-无效',
`forever` tinyint(1) NULL DEFAULT NULL COMMENT '是否永久1-true/0-false',
`start_time` datetime NULL DEFAULT NULL COMMENT '开始时间',
`end_time` datetime NULL DEFAULT NULL COMMENT '结束时间',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`distribute_id` bigint NOT NULL COMMENT '来自对应的分发id(rts_permission_distribute)',
`parent_id` bigint NULL DEFAULT NULL COMMENT '父级id 数据来源rts_permission_distribute表source_subject_id字段',
`is_sync` tinyint(1) NULL DEFAULT NULL COMMENT '是否同步的数据',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 60903 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for rts_permission_system_ability
-- ----------------------------
DROP TABLE IF EXISTS `rts_permission_system_ability`;
CREATE TABLE `rts_permission_system_ability` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '权限功能关联记录id',
`permission_id` bigint NULL DEFAULT NULL COMMENT '权限id',
`system_ability_id` bigint NULL DEFAULT NULL COMMENT '功能(system_ability)的id',
`is_sync` tinyint(1) NULL DEFAULT NULL COMMENT '是否同步的数据',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 58719 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -0,0 +1,38 @@
/*
Navicat Premium Data Transfer
Source Server : test-local
Source Server Type : MySQL
Source Server Version : 80029
Source Host : 192.168.3.233:3306
Source Schema : joylink
Target Server Type : MySQL
Target Server Version : 80029
File Encoding : 65001
Date: 31/10/2022 13:14:51
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for rts_map_function
-- ----------------------------
DROP TABLE IF EXISTS `rts_map_function`;
CREATE TABLE `rts_map_function` (
`id` bigint NOT NULL AUTO_INCREMENT,
`map_id` bigint NOT NULL COMMENT '地图id',
`name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '名称',
`desc` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '描述',
`type` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '仿真类型',
`param` text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '仿真创建参数',
`creator_id` bigint NOT NULL COMMENT '创建人id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`updater_id` bigint NULL DEFAULT NULL COMMENT '更新人id',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 159 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '地图功能' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -0,0 +1,12 @@
CREATE TABLE `rts_draft_training2_progress` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`training_id` bigint DEFAULT NULL COMMENT '实训ID',
`description` text COMMENT '描述',
`create_time` datetime DEFAULT NULL,
`map_location_json` text COMMENT '地图定位',
`bg_scene_json` text COMMENT '背景JSON',
`step_json` text COMMENT '步骤列表json',
`scoring_rule_json` text COMMENT '打分规则列表json',
`creator_id` bigint DEFAULT NULL COMMENT '创建人',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='实训草稿存档表';

View File

@ -0,0 +1,6 @@
ALTER TABLE `joylink`.`rts_draft_training2`
ADD COLUMN `client` varchar(255) NULL COMMENT '客户端' AFTER `update_time`;
ALTER TABLE `joylink`.`rts_published_training2`
ADD COLUMN `client` varchar(255) NULL COMMENT '客户端' AFTER `org_id`;

View File

@ -0,0 +1,3 @@
ALTER TABLE `joylink`.`rts_project`
ADD COLUMN `map_id` int NULL COMMENT '地图ID' AFTER `default_org`,
ADD COLUMN `function_id` int NULL COMMENT '功能ID' AFTER `map_id`;

View File

@ -0,0 +1,35 @@
/*
Navicat Premium Data Transfer
Source Server : room
Source Server Type : MySQL
Source Server Version : 80029
Source Host : 192.168.3.233:3306
Source Schema : joylink
Target Server Type : MySQL
Target Server Version : 80029
File Encoding : 65001
Date: 06/12/2022 09:53:18
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for rts_iscs_model_data
-- ----------------------------
DROP TABLE IF EXISTS `rts_iscs_model_data`;
CREATE TABLE `rts_iscs_model_data` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'iscs数据模型id',
`system` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'iscs一级系统(如FAS、PIS、AFC等)',
`view` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'iscs二级视图',
`place` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '场所(车站、变电所、停车场等)',
`data` blob NULL COMMENT '场所整个所有的模型的数据',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

19
sql/20221206-wei.sql Normal file
View File

@ -0,0 +1,19 @@
CREATE TABLE `rts_training2_rule` (
`id` bigint NOT NULL AUTO_INCREMENT,
`sim_type` varchar(255) DEFAULT NULL COMMENT '仿真类型',
`line_code` varchar(255) DEFAULT NULL COMMENT '线路编码',
`device_rule` varchar(255) DEFAULT NULL COMMENT '设备列表规则',
`client` varchar(255) DEFAULT NULL COMMENT '客户端',
`name` varchar(255) DEFAULT NULL COMMENT '实训名称格式',
`description` varchar(255) DEFAULT NULL COMMENT '实训描述',
`type` varchar(255) DEFAULT NULL COMMENT '实训类型',
`labels` varchar(255) DEFAULT NULL COMMENT '实训标签',
`scene_rule` varchar(255) DEFAULT NULL COMMENT '背景生成规则',
`steps` text COMMENT '步骤列表',
`failure_rule` text COMMENT '失败规则',
`creator_id` bigint DEFAULT NULL COMMENT '创建者ID',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`location_rule` varchar(255) DEFAULT NULL COMMENT '地图定位规则',
PRIMARY KEY (`id`),
KEY `sim_type` (`sim_type`)
) ENGINE=InnoDB AUTO_INCREMENT=72 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

View File

@ -3,15 +3,18 @@ package club.joylink.rtss;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@EnableScheduling
@MapperScan(basePackages= {"club.joylink.rtss.dao"})
@EnableCaching
@MapperScan(basePackages = {"club.joylink.rtss.dao","club.joylink.rtss.iscs.dao"})
//@EnableRetry
public class RtssApplication {
public static void main(String[] args) {
SpringApplication.run(RtssApplication.class, args);
}
public static void main(String[] args) {
SpringApplication.run(RtssApplication.class, args);
}
}

View File

@ -0,0 +1,31 @@
package club.joylink.rtss.configuration;
import club.joylink.rtss.entity.project.Project;
import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.lang.reflect.Method;
import java.util.Arrays;
@Configuration
public class CacheConfig {
@Bean("projectKeyGenerator")
public KeyGenerator projectKeyGenerator() {
return new KeyGenerator() {
@Override
public Object generate(Object o, Method method, Object... objects) {
String name = method.getName();
String cacheKey = null;
if ("queryLoginProjectByCode".equals(name)) {
String code = String.valueOf(objects[0]);
cacheKey = Project.isDefault(code) ? Project.DEFAULT_PROJECT_CODE : code;
} else {
cacheKey = Arrays.asList(objects).toString();
}
return String.format("%s[%s]", name, cacheKey);
}
};
}
}

View File

@ -0,0 +1,36 @@
package club.joylink.rtss.configuration;
import io.minio.MinioClient;
import lombok.Getter;
import lombok.Setter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
@Setter
@Getter
@Configuration
public class MinioClientConfig {
@Value("${minio.endpoint}")
private String endpoint;
@Value("${minio.accessKey}")
private String accessKey;
@Value("${minio.secretKey}")
private String secretKey;
@Value("${minio.bucket}")
private String bucket;
@Value("${minio.replaceHttps}")
private Boolean replaceHttps;
private MinioClient minioClient;
@PostConstruct
private void init() {
this.minioClient = MinioClient.builder().endpoint(endpoint).credentials(accessKey, secretKey).build();
}
}

View File

@ -61,4 +61,18 @@ public class TaskExecutorConfiguration {
return taskExecutor;
}
/**
* 新实训监控
*/
@Bean("trainingV2Executor")
public TaskExecutor trainExecutor(Environment env) {
ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
taskExecutor.setThreadNamePrefix("ns-training-v2-executor-");
taskExecutor.setCorePoolSize(2);
taskExecutor.setMaxPoolSize(2);
taskExecutor.setQueueCapacity(100);
taskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
taskExecutor.initialize();
return taskExecutor;
}
}

View File

@ -60,6 +60,15 @@ public class WebConfig implements WebMvcConfigurer {
whiteList.add("/api/projectServer/project/{project}");
whiteList.add("/test/simulation/**");
whiteList.add("/api/test/**");
whiteList.add("/api/project/viewSetting/simple/all");
whiteList.add("/api/project/viewSetting/project/{project}");
//旧数据处理
whiteList.add("/api/org/oldData/handle");
whiteList.add("/api/mapFunction/oldDataHandle");
whiteList.add("/api/v2/paper/composition/oldData/handle");
whiteList.add("/api/user/sync");
whiteList.add("/dataHandle");
registry.addInterceptor(authenticateInterceptor).excludePathPatterns(whiteList);
}

View File

@ -1,10 +1,14 @@
package club.joylink.rtss.configuration.configProp;
import com.google.common.collect.Lists;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Objects;
@Component
@ConfigurationProperties(prefix="common")
@Getter

View File

@ -6,19 +6,12 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix="wechat")
@ConfigurationProperties(prefix = "wechat")
@Getter
@Setter
public class WeChatConfig {
private String domainUri;
private String appId;
private String appSecret;
private String wxApiUrl;
private String wmBaseUrl;
private String spAppId;
@ -33,18 +26,6 @@ public class WeChatConfig {
private String spApp3Secret;
/** 微信模块基础url */
private String wxModuleUrl;
/**
* 微信小程序配置
*/
private WeChatMiniProgramConfig mini;
public String getWxApiUrl(String redirect, String state) {
return String.format(wxApiUrl, redirect, state);
}
public String getWmLoginUrl(String state) {
return String.format(wmBaseUrl, "login", state);
}
@ -57,41 +38,10 @@ public class WeChatConfig {
return String.format(wmBaseUrl, "distribute", state);
}
public String getWmJointRoomUrl(String state) {
return String.format(wmBaseUrl, "joint", state);
}
public String getWmSimulationUrl(String state) {
return String.format(wmBaseUrl, "simulation", state);
}
/**
* 获取页面access_token的url
* @return
*/
public String getPageAccessTokenUrl(String code) {
return new StringBuilder(this.domainUri)
.append("/sns/oauth2/access_token?appid=").append(this.appId)
.append("&secret=").append(this.appSecret)
.append("&code=").append(code)
.append("&grant_type=authorization_code").toString();
}
public String getJsAccessTokenUrl(String jsCode) {
return new StringBuilder(this.domainUri)
.append("/sns/oauth2/jscode2session?appid=").append(this.spAppId)
.append("&secret=").append(this.spAppSecret)
.append("&js_code=").append(jsCode)
.append("&grant_type=authorization_code").toString();
}
public String getUserInfoUrl(String access_token, String openid) {
return new StringBuilder(this.domainUri)
.append("/sns/userinfo?access_token=").append(access_token)
.append("&openid=").append(openid)
.append("&lang=zh_CN").toString();
}
public String getCode2SessionUrl(String wmCode) {
return new StringBuilder(this.domainUri)
.append("/sns/jscode2session?appid=").append(spAppId)
@ -116,23 +66,6 @@ public class WeChatConfig {
.append("&grant_type=authorization_code").toString();
}
public String getWxModuleBatchGetUserInfoUrl() {
return this.wxModuleUrl + "/api/user/batchget";
}
/**
* 获取微信服务模块打标签url
* @return
*/
public String getWxApiTagUrl() {
return this.wxModuleUrl+"/api/user/tagging";
}
public String getMsgSecCheckUrl() {
return this.wxModuleUrl + "/api/wm/msgSecCheck";
}
public String getOrgBindCode(String state) {
return String.format(wmBaseUrl, "company", state);
}

View File

@ -817,4 +817,12 @@ public interface BusinessConsts {
/** 关闭自动调度 */
REGULATION_OFF,
}
/**
* 数据库数据逻辑删除标识
*/
enum DBLogicDelete{
NORMAL,
DELETE,
}
}

View File

@ -2,6 +2,7 @@ package club.joylink.rtss.constants;
import club.joylink.rtss.exception.BusinessExceptionAssertEnum;
import lombok.Getter;
import org.springframework.util.StringUtils;
/**
* 客户端枚举
@ -32,17 +33,22 @@ public enum Client {
/**
* 根据客户端id查询客户端对象
*
* @param clientId
* @return
*/
public static Client getByIdAndSecret(String clientId, String secret) {
// 传入为空时设置默认客户端
if (StringUtils.isEmpty(clientId) && StringUtils.isEmpty(secret)) {
return Client.Joylink;
}
Client[] values = Client.values();
for (Client value : values) {
if(value.getId().equals(clientId)
&& value.getSecret().equals(secret)) {
if (value.getId().equals(clientId)
&& value.getSecret().equals(secret)) {
return value;
}
}
throw BusinessExceptionAssertEnum.INVALID_CLIENT.exception(String.format("未找到id为[%s]的客户端",clientId));
throw BusinessExceptionAssertEnum.INVALID_CLIENT.exception(String.format("未找到id为[%s]的客户端", clientId));
}
}

View File

@ -0,0 +1,133 @@
package club.joylink.rtss.constants;
/**
* 项目
*/
public enum ProjectEnum {
/**
* 自己项目
*/
DEFAULT,
/**
* 无logo
*/
NOLOGO,
/**
* 西铁院项目
*/
XTY,
/**
* 南铁院项目
*/
NTY,
/**
* 南铁院云端定制项目
*/
NTYC,
/**
* 南铁院本地定制项目
*/
NTYL,
/**
* 西安地铁运营公司项目
*/
XADT,
/**
* 苏州电子信息学院项目
*/
SDY,
/**
* 贵州装备职业学院项目
*/
GZB,
/**
* 哈尔滨项目
*/
HEB,
/**
* 行调竞赛实训系统
*/
DRTS,
/**
* 北京交通大学项目客流量科研
*/
BJD,
/**
* 成都工业职业技术学院
*/
CGY,
/**
* 微机联锁
*/
WJLS,
/**
* 郑州共赢
*/
ZZWW,
/**
* 郑州共赢测试
*/
ZZWWTEST,
/**
* 中航锐创第三方教学合作,第三方登录
*/
RICHOR,
/**
* 中航锐创义乌现场实训室连设备设备登录
*/
RICHOR_JOINT,
/**
* 中航-上饶沙盘
*/
SR_SANDBOX,
/**
* 中航-江西工贸
*/
JXGM,
/**
* 扬工院
*/
RICHOR_YGY,
/**
* 苏安院
*/
SAY,
/**
* 测试
*/
TEST,
/**
* 中航-云南红河财经IBP盘项目
*/
RICHOR_HHCJ,
/**
* 众合-陕铁院
*/
UNITTEC_STY,
/**
* 通用教学
*/
TEACHING,
/**
* 长兴技术学院
*/
RICHOR_CXJS,
/**
* 哈盈达-铁路
*/
HYD_RAILWAY,
/** 武汉8号线 */
// WH,
/**
* 武汉8号线 应急调度指挥系统
*/
YJDDZH;
public static boolean isDefault(ProjectEnum project) {
return DEFAULT.equals(project);
}
public static boolean isLoginWithCreateSimulation(ProjectEnum project) {
return ProjectEnum.DRTS.equals(project) || ProjectEnum.BJD.equals(project) || ProjectEnum.WJLS.equals(project);
}
}

View File

@ -17,11 +17,13 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
*组织成员管理接口
* 组织成员管理接口
* 这些接口逐渐废弃新接口加在这里{@link club.joylink.rtss.controller.org.OrgController}
*/
@RestController
@RequestMapping("/api/company")
public class OrgController {
@Deprecated(since = "2022.12.08", forRemoval = true)
public class CompanyController {
@Autowired
private IOrgUserService iOrgUserService;
@ -39,87 +41,87 @@ public class OrgController {
private IOrgExamService iOrgExamService;
/**
*创建顶级组织
* 创建顶级组织
*/
@PostMapping
public CompanyVO create(@RequestBody @Validated CompanyVO company, @RequestAttribute(AuthenticateInterceptor.LOGIN_USER_KEY) AccountVO user) {
public OrgVO create(@RequestBody @Validated OrgVO company, @RequestAttribute(AuthenticateInterceptor.LOGIN_USER_KEY) AccountVO user) {
return iOrgService.createTopOrg(company, user);
}
/**
*获取公司列表
* 获取公司列表
*/
@GetMapping
public List<CompanyVO> queryAll() {
public List<OrgVO> queryAll() {
return iOrgService.queryAllTopOrg();
}
/**
*分页获取公司列表
* 分页获取公司列表
*/
@GetMapping("paging")
public PageVO<CompanyVO> pagingQueryAll(OrgQueryVO queryVO) {
public PageVO<OrgVO> pagingQueryAll(OrgQueryVO queryVO) {
return iOrgService.pagedQueryAllTopOrg(queryVO);
}
/**
*查询公司信息
* 查询公司信息
*/
@GetMapping("{id}")
public CompanyVO get(@PathVariable Long id) {
public OrgVO get(@PathVariable Long id) {
return iOrgService.get(id);
}
/**
*更新公司信息
* 更新公司信息
*/
@PutMapping("{id}")
public CompanyVO updateCompany(@PathVariable Long id, @RequestBody @Validated CompanyVO company, @RequestAttribute AccountVO user) {
public OrgVO updateCompany(@PathVariable Long id, @RequestBody @Validated OrgVO company, @RequestAttribute AccountVO user) {
return iOrgService.updateOrg(id, company, user);
}
/**
*微信小程用户绑定为单位管理员
* 微信小程用户绑定为单位管理员
*/
@PutMapping(path = "/bind/company")
public CompanyVO userScanCodeBindCompany(Long userId, Long companyId) {
public OrgVO userScanCodeBindCompany(Long userId, Long companyId) {
return iOrgUserService.userScanCodeBindCompanyManager(userId, companyId);
}
/**
*添加部门信息
* 添加部门信息
*/
@PostMapping(path = "/dept")
public DepartmentVO createDepart(@RequestBody @Validated DepartmentVO departmentVO) {
return iOrgUserService.createDepart(departmentVO);
public OrgVO createDepart(@RequestBody @Validated OrgVO orgVO) {
return iOrgUserService.createDepart(orgVO);
}
/**
*获取单位所有部门
* 获取单位所有部门
*/
@GetMapping(path = "{companyId}/dept")
public List<DepartmentVO> queryCompanyDepart(@PathVariable Long companyId) {
public List<OrgVO> queryCompanyDepart(@PathVariable Long companyId) {
return iOrgUserService.getCompanyAllDepart(companyId);
}
/**
*获取部门及其子树
* 获取部门及其子树
*/
@GetMapping(path = "{companyId}/dept/{deptId}/tree")
public DepartmentVO queryDepartTree(@PathVariable Long deptId, @PathVariable Long companyId) {
public OrgVO queryDepartTree(@PathVariable Long deptId, @PathVariable Long companyId) {
return iOrgUserService.getDepartTree(companyId, deptId);
}
/**
*获取部门及其子部门
* 获取部门及其子部门
*/
@GetMapping(path = "{companyId}/dept/{deptId}")
public List<DepartmentVO> queryDepart(@PathVariable Long deptId, @PathVariable Long companyId) {
public List<OrgVO> queryDepart(@PathVariable Long deptId, @PathVariable Long companyId) {
return iOrgUserService.getDepartAndChild(companyId, deptId);
}
/**
*删除部门信息
* 删除部门信息
*/
@DeleteMapping("/dept/{deptId}")
public void deleteDepart(@PathVariable Long deptId) {
@ -127,23 +129,23 @@ public class OrgController {
}
/**
*查询部门信息
* 查询部门信息
*/
@GetMapping("/dept/{deptId}")
public DepartmentVO getDepart(@PathVariable Long deptId) {
return iOrgUserService.getDepartById(deptId);
public OrgVO queryDepart(@PathVariable Long deptId) {
return iOrgUserService.queryDepartById(deptId);
}
/**
*更新部门信息
* 更新部门信息
*/
@PutMapping("/dept/{id}")
public void updateDepartInfo(@PathVariable Long id, @RequestBody @Validated DepartmentVO departmentVO) {
iOrgUserService.updateDepartInfo(id, departmentVO);
public void updateDepartInfo(@PathVariable Long id, @RequestBody @Validated OrgVO orgVO) {
iOrgUserService.updateDepartInfo(id, orgVO);
}
/**
*添加单位成员关系信息
* 添加单位成员关系信息
*/
@PostMapping("refUserInfo")
public void addCompanyUserInfo(@RequestAttribute AccountVO user, @RequestBody UserDepartRelVO userDepartRelVO) {
@ -151,7 +153,7 @@ public class OrgController {
}
/**
*更新单位成员关系信息
* 更新单位成员关系信息
*/
@PutMapping("refUserInfo")
public void updateCompanyUserInfo(@RequestAttribute AccountVO user, @RequestBody UserDepartRelVO userDepartRelVO) {
@ -159,7 +161,7 @@ public class OrgController {
}
/**
*取消单位的部门成员关系
* 取消单位的部门成员关系
*/
@DeleteMapping("departUserInfo")
public void deleteCompanyUserInfo(@RequestAttribute AccountVO user, @RequestBody @Validated UserDepartRelVO userDepartRelVO) {
@ -167,7 +169,7 @@ public class OrgController {
}
/**
*分页获取班级学生信息
* 分页获取班级学生信息
*/
@GetMapping("/dept/{clsId}/departUserInfo")
public PageVO<OrgUserVO> getCompanyUserInfo(@RequestAttribute AccountVO user, @PathVariable Integer clsId, CompanyUserQueryVO companyUserQueryVO) {
@ -175,7 +177,7 @@ public class OrgController {
}
/**
*导入单位成员信息
* 导入单位成员信息
*/
@PostMapping("{clsId}/departUserInfo/import")
public void importCompanyUserInfo(@RequestAttribute AccountVO user, @PathVariable Long clsId, @RequestBody List<ImportOrgUserVO> importOrgUsers) {
@ -183,7 +185,7 @@ public class OrgController {
}
/**
*获取单位用户的部门信息
* 获取单位用户的部门信息
*/
@GetMapping("{companyId}/userDeparts")
public List<OrgUserVO> getUserCompanyDeparts(@RequestAttribute AccountVO user, @PathVariable Integer companyId) {
@ -191,7 +193,7 @@ public class OrgController {
}
/**
*查询自己给该组织班级排的课
* 查询自己给该组织班级排的课
*/
@GetMapping("/orgLesson/{orgId}/list")
public List<LessonVO> queryOrgLessonICreated(@PathVariable Long orgId, @RequestAttribute AccountVO user) {
@ -199,7 +201,7 @@ public class OrgController {
}
/**
*修改班级-课程关系
* 修改班级-课程关系
*/
@PutMapping("/orgLesson/{clsId}/update")
public void updateOrgLesson(@PathVariable Long clsId, @RequestBody List<Long> lessonIds, @RequestAttribute LoginUserInfoVO loginInfo) {
@ -207,7 +209,7 @@ public class OrgController {
}
/**
*给班级添加学生
* 给班级添加学生
*/
@PostMapping("/orgUser/{clsId}/addStudent")
public void addStudent(@PathVariable Long clsId, @RequestBody ImportOrgUserVO importVO, @RequestAttribute AccountVO user) {
@ -215,7 +217,7 @@ public class OrgController {
}
/**
*创建班级
* 创建班级
*/
@PostMapping("/org/cls/create")
public void createCls(@RequestBody NonTopOrgCreateVO createVO, @RequestAttribute LoginUserInfoVO loginInfo) {
@ -226,20 +228,20 @@ public class OrgController {
* 分页查询当前登录用户所属组织下的班级
*/
@GetMapping("/paged/cls")
public PageVO<DepartmentVO> pagedQuerySelfCls(OrgQueryVO queryVO, @RequestAttribute LoginUserInfoVO loginInfo) {
public PageVO<OrgVO> pagedQuerySelfCls(OrgQueryVO queryVO, @RequestAttribute LoginUserInfoVO loginInfo) {
return iOrgService.pagedQueryCls(queryVO, loginInfo);
}
/**
*查询当前登录项目所属组织下的班级
* 查询当前登录项目所属组织下的班级
*/
@GetMapping("/list/cls")
public List<DepartmentVO> queryCls(OrgQueryVO queryVO, @RequestAttribute LoginUserInfoVO loginInfo) {
public List<OrgVO> queryCls(OrgQueryVO queryVO, @RequestAttribute LoginUserInfoVO loginInfo) {
return iOrgService.queryCls(queryVO, loginInfo);
}
/**
*创建评价规则
* 创建评价规则
*/
@PostMapping("/orgScoringRule")
public void createScoringRule(@RequestBody OrgScoringRuleVO orgScoringRuleVO, @RequestAttribute LoginUserInfoVO loginInfo) {
@ -247,7 +249,7 @@ public class OrgController {
}
/**
*更新评价规则
* 更新评价规则
*/
@PutMapping("/orgScoringRule")
public void UpdateScoringRule(@RequestBody OrgScoringRuleVO orgScoringRuleVO, @RequestAttribute AccountVO user) {
@ -255,7 +257,7 @@ public class OrgController {
}
/**
*查询自己创建的评价规则基础信息
* 查询自己创建的评价规则基础信息
*/
@GetMapping("/orgScoringRule/basicInfo/self/paged")
public PageVO<OrgScoringRuleVO> queryOrgScoringRuleBasicInfo(OrgScoringRuleQueryVO queryVO, @RequestAttribute AccountVO user) {
@ -263,7 +265,7 @@ public class OrgController {
}
/**
*查询自己创建的指定评价规则详细信息
* 查询自己创建的指定评价规则详细信息
*/
@GetMapping("/orgScoringRule/details/self/{orgId}/{schoolYear}/{term}")
public OrgScoringRuleVO queryOrgScoringRuleDetails(@PathVariable Long orgId, @PathVariable String schoolYear,
@ -272,7 +274,7 @@ public class OrgController {
}
/**
*查询指定评价规则详细信息
* 查询指定评价规则详细信息
*/
@GetMapping("/orgScoringRule/details/self/{ruleId}")
public OrgScoringRuleVO queryOrgScoringRuleDetails(@PathVariable Long ruleId) {
@ -280,7 +282,7 @@ public class OrgController {
}
/**
*获取评价规则的评分结果
* 获取评价规则的评分结果
*/
@GetMapping("/orgScoringRule/score/{orgId}/{schoolYear}/{term}")
public List<OrgScoringResultVO> score(@PathVariable Long orgId, @PathVariable String schoolYear,
@ -289,7 +291,7 @@ public class OrgController {
}
/**
*删除评分规则
* 删除评分规则
*/
@DeleteMapping("/orgScoringRule/details/self/{ruleId}")
public void deleteScoringRule(@PathVariable Long ruleId, @RequestAttribute AccountVO user) {
@ -297,15 +299,15 @@ public class OrgController {
}
/**
*查询规则能够应用到的组织
* 查询规则能够应用到的组织
*/
@GetMapping("/orgScoringRule/{ruleId}/canApplyTo")
public List<DepartmentVO> queryRuleCanApplyTo(@PathVariable Long ruleId, @RequestAttribute AccountVO user) {
public List<OrgVO> queryRuleCanApplyTo(@PathVariable Long ruleId, @RequestAttribute AccountVO user) {
return iOrgScoringRuleService.queryRuleCanApplyTo(ruleId, user);
}
/**
*将评价规则应用到
* 将评价规则应用到
*/
@PostMapping("/orgScoringRule/{ruleId}/apply")
public void applyOrgScoringRule(@PathVariable Long ruleId, @RequestBody List<Long> orgIds) {
@ -313,7 +315,7 @@ public class OrgController {
}
/**
*给班级安排考试
* 给班级安排考试
*/
@PostMapping("/orgExam/{clsId}")
public void createOrgExam(@PathVariable Long clsId, @RequestBody List<Long> examIds, @RequestAttribute AccountVO user) {
@ -321,7 +323,7 @@ public class OrgController {
}
/**
*查询班级安排的考试id
* 查询班级安排的考试id
*/
@GetMapping("/orgExam/{clsId}/list")
public List<String> queryOrgExam(@PathVariable Long clsId, @RequestAttribute AccountVO user) {
@ -329,7 +331,7 @@ public class OrgController {
}
/**
*管理员查看组织树
* 管理员查看组织树
*/
@Role(RoleEnum.Admin)
@GetMapping("/orgTree/{orgId}")
@ -338,7 +340,7 @@ public class OrgController {
}
/**
*获取学生实训使用时长
* 获取学生实训使用时长
*/
@GetMapping("/usage/students")
public List<StudentsUsageStatisticsVO> statisticUsage(@Validated UsageQueryVO queryVO) {
@ -353,4 +355,19 @@ public class OrgController {
return iOrgService.getBindQrCode(orgId, loginInfo.getProject());
}
/**
* 查询班级教师接口
*/
@GetMapping("/dept/{clsId}/teachers")
public PageVO<OrgUserVO> clsTeacherList(@PathVariable Integer clsId, CompanyUserQueryVO companyUserQueryVO) {
return iOrgUserService.clsTeacherList(clsId, companyUserQueryVO);
}
/**
* 添加教师接口
*/
@PostMapping("/dept/{clsId}/addTeacher")
public void addTeacher(@PathVariable Long clsId, @RequestBody ImportOrgUserVO importVO, @RequestAttribute AccountVO user) {
iOrgUserService.addTeacher(clsId, importVO, user);
}
}

View File

@ -0,0 +1,105 @@
package club.joylink.rtss.controller;
import club.joylink.rtss.constants.Project;
import club.joylink.rtss.controller.org.OrgProjectController;
import club.joylink.rtss.controller.paper.PaperCompositionController;
import club.joylink.rtss.controller.publish.MapFunctionController;
import club.joylink.rtss.controller.user.UserController;
import club.joylink.rtss.dao.MapDataDAO;
import club.joylink.rtss.dao.MapInfoDAO;
import club.joylink.rtss.dao.OrgDAO;
import club.joylink.rtss.entity.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* 2023.01.10版本处理接口数据
*/
@RestController
@RequestMapping("/dataHandle")
public class DataHandleController {
@Autowired
private MapInfoDAO mapInfoDAO;
@Autowired
private MapDataDAO mapDataDAO;
@Autowired
private OrgProjectController orgProjectController;
@Autowired
private MapFunctionController mapFunctionController;
@Autowired
private PaperCompositionController paperCompositionController;
@Autowired
private UserController userController;
@Autowired
private OrgDAO orgDAO;
@Transactional(rollbackFor = Exception.class)
@PostMapping
public List<String> handle(HttpServletResponse response) {
correctMapVersion();
confirmDefaultOrgExist();
orgProjectController.oldDataHandle();
List<String> msgList = new ArrayList<>(mapFunctionController.oldDataHandle());
msgList.addAll(paperCompositionController.oldDataHandle());
msgList.addAll(userController.sync());
return msgList;
}
/**
* 纠正地图信息表的版本字段使用地图数据的最后一个版本
*/
private void correctMapVersion() {
MapInfoExample mapInfoExample = new MapInfoExample();
mapInfoExample.createCriteria().andStatusEqualTo("1");
List<MapInfo> onlineMaps = mapInfoDAO.selectByExample(mapInfoExample);
Map<Long, MapInfo> onlineMapMap = onlineMaps.stream().collect(Collectors.toMap(MapInfo::getId, Function.identity()));
MapDataExample mapDataExample = new MapDataExample();
mapDataExample.createCriteria().andMapIdIn(new ArrayList<>(onlineMapMap.keySet()));
List<MapData> onlineMapDataList = mapDataDAO.selectByExample(mapDataExample);
onlineMapDataList.stream()
.collect(Collectors.toMap(MapData::getMapId, MapData::getVersion, (d1, d2) -> {
float v1 = Float.parseFloat(d1);
float v2 = Float.parseFloat(d2);
return v1 > v2 ? d1 : d2;
})).forEach((mapId, version) -> {
MapInfo mapInfo = onlineMapMap.get(mapId);
mapInfo.setVersion(version);
mapInfoDAO.updateByPrimaryKey(mapInfo);
});
}
private void confirmDefaultOrgExist() {
OrgExample orgExample = new OrgExample();
orgExample.createCriteria().andNameEqualTo("默认组织");
if (orgDAO.countByExample(orgExample) != 0) {
return;
}
Org org = new Org();
org.setName("默认组织");
org.setProjectCode(Project.DEFAULT.name());
org.setStatus("1");
org.setCreateTime(LocalDateTime.now());
org.setCreatorId(1L);
orgDAO.insert(org);
org.setRootId(org.getId());
orgDAO.updateByPrimaryKey(org);
}
}

View File

@ -1,6 +1,5 @@
package club.joylink.rtss.controller;
import club.joylink.rtss.constants.Project;
import club.joylink.rtss.services.ILearnService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.client.PageQueryVO;
@ -18,7 +17,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
*学习吧接口
* 学习吧接口
*/
@RestController
@RequestMapping(path = "/api/learn")
@ -28,7 +27,7 @@ public class LearnController {
private ILearnService iLearnService;
/**
*分页查询留言板列表
* 分页查询留言板列表
*/
@GetMapping(path = "/post")
public PageVO<LearnPostVO> queryPagedPost(LearnPostPagedQueryVO queryVO) {
@ -36,15 +35,15 @@ public class LearnController {
}
/**
*查询项目留言板
* 查询项目留言板
*/
@GetMapping("/{project}/post")
public LearnPostVO queryPost(@PathVariable Project project) {
public LearnPostVO queryPost(@PathVariable String project) {
return iLearnService.queryPost(project);
}
/**
*新建帖子
* 新建帖子
*/
@PostMapping(path = "/post")
public Long createPost(@RequestBody @Validated LearnPostCreateVO createVO, @RequestAttribute AccountVO user) {
@ -52,7 +51,7 @@ public class LearnController {
}
/**
*编辑留言板基础信息
* 编辑留言板基础信息
*/
@PutMapping("/{postId}")
public void updatePost(@PathVariable Long postId, @RequestBody @Validated LearnPostUpdateVO updateVO,
@ -61,7 +60,7 @@ public class LearnController {
}
/**
*获取帖子信息
* 获取帖子信息
*/
@GetMapping(path = "/{postId}")
public LearnPostVO getPostInfo(@PathVariable Long postId) {
@ -69,7 +68,7 @@ public class LearnController {
}
/**
*赞贴
* 赞贴
*/
@PostMapping(path = "/post/{postId}/like")
public void likePost(@PathVariable Long postId, @RequestAttribute AccountVO user) {
@ -77,7 +76,7 @@ public class LearnController {
}
/**
*踩贴
* 踩贴
*/
@PostMapping(path = "/post/{postId}/unlike")
public void unlikePost(@PathVariable Long postId, @RequestAttribute AccountVO user) {
@ -85,7 +84,7 @@ public class LearnController {
}
/**
*置顶-管理员操作
* 置顶-管理员操作
*/
@PutMapping(path = "/{postId}/top")
public void top(@PathVariable Long postId, @RequestAttribute AccountVO user) {
@ -93,7 +92,7 @@ public class LearnController {
}
/**
*删除帖子-管理员操作
* 删除帖子-管理员操作
*/
@DeleteMapping(path = "/{postId}")
public void deletePost(@PathVariable Long postId, @RequestAttribute AccountVO user) {
@ -103,7 +102,7 @@ public class LearnController {
//--------------------------------- 留言 ---------------------------------
/**
*留言
* 留言
*/
@PostMapping("/message/create")
public long createMessage(@RequestBody @Validated LearnMessageCreateVO messageCreateVO, @RequestAttribute AccountVO user) {
@ -111,7 +110,7 @@ public class LearnController {
}
/**
*成工院留言
* 成工院留言
*/
@PostMapping("/cgy/message/create")
public long cgyCreateMessage(@RequestBody @Validated LearnMessageCreateVO messageCreateVO) {
@ -119,7 +118,7 @@ public class LearnController {
}
/**
*分页查询留言
* 分页查询留言
*/
@GetMapping("/{postId}/message/pagedQuery/postId")
public PageVO<LearnMessageVO> pagedQueryMessageByPostId(@PathVariable Long postId, LearnMessagePagedQueryVO queryVO) {
@ -127,15 +126,15 @@ public class LearnController {
}
/**
*根据项目分页查询留言
* 根据项目分页查询留言
*/
@GetMapping("/{project}/message/pagedQuery/project")
public PageVO<LearnMessageVO> pagedQueryMessageByProject(@PathVariable Project project, LearnMessagePagedQueryVO queryVO) {
public PageVO<LearnMessageVO> pagedQueryMessageByProject(@PathVariable String project, LearnMessagePagedQueryVO queryVO) {
return iLearnService.pagedQueryMessageByProject(project, queryVO);
}
/**
*删除留言管理员
* 删除留言管理员
*/
@DeleteMapping("/{messageId}/deleteMessage/admin")
public void adminDeleteMessage(@PathVariable Long messageId, @RequestAttribute AccountVO user) {
@ -143,7 +142,7 @@ public class LearnController {
}
/**
*删除留言用户删自己的
* 删除留言用户删自己的
*/
@DeleteMapping("/{messageId}/deleteMessage/user")
public void userDeleteMessage(@PathVariable Long messageId, @RequestAttribute AccountVO user) {
@ -165,7 +164,7 @@ public class LearnController {
//----------------------------------------- 评论 -----------------------------------------
/**
*分页查询留言评论列表
* 分页查询留言评论列表
*/
@GetMapping(path = "/{messageId}/comment")
public PageVO<LearnCommentVO> queryPagedComment(@PathVariable Long messageId, PageQueryVO queryVO) {
@ -173,7 +172,7 @@ public class LearnController {
}
/**
*查询留言回复列表
* 查询留言回复列表
*/
@GetMapping(path = "/{messageId}/list")
public List<LearnCommentVO> queryCommentList(@PathVariable Long messageId) {
@ -181,7 +180,7 @@ public class LearnController {
}
/**
*评论
* 评论
*/
@PostMapping(path = "/{messageId}/comment")
public void comment(@PathVariable Long messageId,
@ -191,7 +190,7 @@ public class LearnController {
}
/**
*成工院评论
* 成工院评论
*/
@PostMapping(path = "/cgy/{messageId}/comment")
public void cygComment(@PathVariable Long messageId,
@ -200,7 +199,7 @@ public class LearnController {
}
/**
*回复
* 回复
*/
@PostMapping(path = "/{messageId}/{commentId}/comment")
public void comment(@PathVariable Long messageId, @PathVariable Long commentId,
@ -210,7 +209,7 @@ public class LearnController {
}
/**
*赞回复
* 赞回复
*/
@PostMapping(path = "/comment/{commentId}/like")
public void likeComment(@PathVariable Long commentId, @RequestAttribute AccountVO user) {
@ -218,7 +217,7 @@ public class LearnController {
}
/**
*踩回复
* 踩回复
*/
@PostMapping(path = "/comment/{commentId}/unlike")
public void unlikeComment(@PathVariable Long commentId, @RequestAttribute AccountVO user) {
@ -226,7 +225,7 @@ public class LearnController {
}
/**
*取消置顶-管理员操作
* 取消置顶-管理员操作
*/
@PutMapping(path = "/{postId}/unTop")
public void unTop(@PathVariable Long postId, @RequestAttribute AccountVO user) {
@ -234,7 +233,7 @@ public class LearnController {
}
/**
*删除评论-管理员操作
* 删除评论-管理员操作
*/
@DeleteMapping(path = "/{commentId}/deleteComment/admin")
public void adminDeleteComment(@PathVariable Long commentId, @RequestAttribute AccountVO user) {
@ -242,7 +241,7 @@ public class LearnController {
}
/**
*删除评论-用户操作
* 删除评论-用户操作
*/
@DeleteMapping(path = "/{commentId}/deleteComment/user")
public void userDeleteComment(@PathVariable Long commentId, @RequestAttribute AccountVO user) {
@ -250,8 +249,9 @@ public class LearnController {
}
//----------------------------------------- 改数据 -----------------------------------------
/**
*管理员修改留言数据
* 管理员修改留言数据
*/
@PutMapping(path = "/admin/update/message")
public void adminUpdateMessage(LearnMessageUpdateVO messageUpdateVO) {
@ -259,7 +259,7 @@ public class LearnController {
}
/**
*管理员修改评论数据
* 管理员修改评论数据
*/
@PutMapping(path = "/admin/update/comment")
public void adminUpdateComment(LearnCommentUpdateVO commentUpdateVO) {
@ -267,7 +267,7 @@ public class LearnController {
}
/**
*成工院留言时间打散
* 成工院留言时间打散
*/
@PutMapping(path = "/cgy/updateMessageTime")
public void cgyUpdateMessageTime() {

View File

@ -1,6 +1,5 @@
package club.joylink.rtss.controller;
import club.joylink.rtss.constants.Project;
import club.joylink.rtss.exception.BaseException;
import club.joylink.rtss.exception.BusinessExceptionAssertEnum;
import club.joylink.rtss.services.auth.IAuthenticateService;
@ -35,8 +34,7 @@ public class LoginController {
public LoginStatusVO getWmLoginUrl(@NotBlank String clientId, @NotBlank String secret,
String project, @RequestParam(required = false) String deviceCode) {
try {
Project pro = Project.valueOf(project);
return this.iAuthenticateService.getWmLoginUrl(clientId, secret, pro, deviceCode);
return this.iAuthenticateService.getWmLoginUrl(clientId, secret, project, deviceCode);
} catch (BaseException e) {
throw e;
} catch (Exception e) {

View File

@ -0,0 +1,60 @@
package club.joylink.rtss.controller;
import club.joylink.rtss.entity.minio.MinioFileInfo;
import club.joylink.rtss.services.MinioService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.minio.MinioFilePageVO;
import io.minio.http.Method;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* minio 相关管理
*/
@RestController
@RequestMapping("/api/minio")
public class MinioController {
@Autowired
private MinioService minioService;
@GetMapping("/checkIsExist")
public boolean checkFileIsExist(String directory, String fileName) {
return minioService.checkFileIsExist(directory, fileName);
}
@GetMapping("/preSignedUrl")
public String getPreSignedObjectUrl(String directory, String fileName, Method method) {
return minioService.preSignedObjectUrl(directory, fileName, method);
}
@GetMapping("/downloadUrl")
public String downloadUrl(String directory, String fileName) {
return minioService.downloadObjectUrl(directory, fileName);
}
@DeleteMapping("/removeObject")
public void removeObject(String directory, String fileName) {
minioService.removeMinioObject(directory, fileName);
}
@PostMapping("/file/save")
public void saveFile(@RequestAttribute AccountVO user, @RequestBody MinioFileInfo fileInfo) {
minioService.saveFileInfo(user, fileInfo);
}
@GetMapping("/file/list")
public PageVO<MinioFileInfo> queryFileInfo(MinioFilePageVO pageVO) {
return minioService.queryFileInfoList(pageVO);
}
@PutMapping("/file/update")
public void update(@RequestBody MinioFileInfo fileInfo) {
minioService.update(fileInfo);
}
@DeleteMapping("/file/del/{id}")
public void delete(@PathVariable Long id) {
minioService.delete(id);
}
}

View File

@ -1,6 +1,5 @@
package club.joylink.rtss.controller;
import club.joylink.rtss.constants.Project;
import club.joylink.rtss.constants.RoleEnum;
import club.joylink.rtss.controller.advice.AuthenticateInterceptor;
import club.joylink.rtss.controller.advice.Role;
@ -29,7 +28,7 @@ public class ProjectServerController {
@GetMapping("/project/{project}")
public ProjectServerVO getByProject(@PathVariable String project) {
try {
return this.serverService.getByProject(Project.valueOf(project));
return this.serverService.getByProject(project);
} catch (BaseException e) {
throw e;
} catch (Exception e) {

View File

@ -5,6 +5,7 @@ import club.joylink.rtss.exception.PayException;
import club.joylink.rtss.simulation.cbtc.exception.SimulationException;
import club.joylink.rtss.vo.CommonJsonResponse;
import club.joylink.rtss.vo.ResponseConsts;
import com.google.protobuf.AbstractMessageLite;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.MethodParameter;
import org.springframework.http.MediaType;
@ -33,6 +34,17 @@ public class CommonResponseBody implements ResponseBodyAdvice {
@Override
public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType,
Class selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {
//byte[]
if(body instanceof byte[]){
response.getHeaders().setContentType(MediaType.APPLICATION_OCTET_STREAM);
return body;
}
//byte[]
if(body instanceof AbstractMessageLite){
response.getHeaders().setContentType(MediaType.APPLICATION_OCTET_STREAM);
final AbstractMessageLite proto = (AbstractMessageLite) body;
return proto.toByteArray();
}
if(body instanceof CommonJsonResponse) {
return body;
}

View File

@ -12,8 +12,8 @@ import javax.validation.constraints.PositiveOrZero;
/**
* 竞赛用户点赞
*/
@RestController
@RequestMapping(path = "/api/v1/likes")
//@RestController
//@RequestMapping(path = "/api/v1/likes")
public class CompetitionUserLikesController {
@Autowired

View File

@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
*出题规则
* 出题规则
*/
@RestController
@RequestMapping("/api/questionsRule")
@ -23,18 +23,18 @@ public class RaceQuestionsRuleController {
private IRaceQuestionsRuleService iRaceQuestionsRuleService;
/**
*添加规则
* 添加规则
*/
@PostMapping
public TheoryQuestionsRuleVO create(@RequestBody @Validated TheoryQuestionsRuleVO ruleVO,
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO loginUserInfoVO) {
ruleVO.setProjectCode(loginUserInfoVO.getProject().name());
ruleVO.setProjectCode(loginUserInfoVO.getProject());
TheoryQuestionsRuleVO vo = this.iRaceQuestionsRuleService.create(ruleVO);
return vo;
}
/**
*获取规则列表
* 获取规则列表
*/
@GetMapping
public List<TheoryQuestionsRuleVO> queryAll() {
@ -43,17 +43,18 @@ public class RaceQuestionsRuleController {
}
/**
*分页获取规则列表
* 分页获取规则列表
*/
@GetMapping("paging")
public PageVO<TheoryQuestionsRuleVO> pagingQueryRules(TheoryQuestionRuleQueryVO queryVO, @RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO loginInfo) {
queryVO.setProjectCode(loginInfo.getProject().name());
public PageVO<TheoryQuestionsRuleVO> pagingQueryRules(TheoryQuestionRuleQueryVO queryVO
, @RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO loginInfo) {
queryVO.setProjectCode(loginInfo.getProject());
PageVO<TheoryQuestionsRuleVO> list = this.iRaceQuestionsRuleService.pagingQueryRules(queryVO);
return list;
}
/**
*删除规则
* 删除规则
*/
@DeleteMapping("{id}")
public void delete(@PathVariable Integer id) {
@ -61,7 +62,7 @@ public class RaceQuestionsRuleController {
}
/**
*查询规则内容
* 查询规则内容
*/
@GetMapping("{id}")
public TheoryQuestionsRuleVO get(@PathVariable Integer id) {
@ -69,7 +70,7 @@ public class RaceQuestionsRuleController {
}
/**
*更改规则内容
* 更改规则内容
*/
@PutMapping("{id}")
public TheoryQuestionsRuleVO get(@PathVariable Integer id, @RequestBody @Validated TheoryQuestionsRuleVO ruleVO) {

View File

@ -1,7 +1,6 @@
package club.joylink.rtss.controller.competition.question;
import club.joylink.rtss.constants.Project;
import club.joylink.rtss.services.completition.question.IQuestionBankService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.LoginUserInfoVO;
@ -18,7 +17,7 @@ import java.util.List;
/**
*题库管理接口
* 题库管理接口
*/
@RestController
@RequestMapping(path = "/api/questionBank")
@ -28,25 +27,25 @@ public class QuestionBankController {
private IQuestionBankService iQuestionBankService;
/**
*分页查询题目
* 分页查询题目
*/
@GetMapping(path = "/questions/paging")
public PageVO<QuestionVO> pagingQueryQuestions(@RequestAttribute LoginUserInfoVO loginInfo, QuestionQueryVO queryVO) {
queryVO.setProjectCode(loginInfo.getProject().name());
queryVO.setProjectCode(loginInfo.getProject());
return iQuestionBankService.pagingQueryQuestions(queryVO);
}
/**
*查询题目列表
* 查询题目列表
*/
@GetMapping(path = "/questions")
public List<QuestionVO> queryQuestions(@RequestAttribute LoginUserInfoVO loginInfo,QuestionQueryVO queryVO) {
queryVO.setProjectCode(loginInfo.getProject().name());
public List<QuestionVO> queryQuestions(@RequestAttribute LoginUserInfoVO loginInfo, QuestionQueryVO queryVO) {
queryVO.setProjectCode(loginInfo.getProject());
return iQuestionBankService.queryQuestions(queryVO);
}
/**
*获取题目信息
* 获取题目信息
*/
@GetMapping(path = "/questions/{questionId}")
public QuestionVO getQuestion(@PathVariable Long questionId) {
@ -54,36 +53,36 @@ public class QuestionBankController {
}
/**
*添加题目
* 添加题目
*/
@PostMapping(path = "/questions")
public void addQuestion(@Validated @RequestBody QuestionVO questionVO,@RequestAttribute LoginUserInfoVO loginInfo,
public void addQuestion(@Validated @RequestBody QuestionVO questionVO, @RequestAttribute LoginUserInfoVO loginInfo,
@RequestAttribute AccountVO user) {
questionVO.setProjectCode(loginInfo.getProject().name());
questionVO.setProjectCode(loginInfo.getProject());
iQuestionBankService.addQuestion(questionVO, user);
}
/**
*导入项目或单位试题库
* 导入项目或单位试题库
*/
@PostMapping(path = "/questions/import")
public void importProjectQuestion(@Validated @RequestBody List<QuestionVO> questions, @RequestAttribute LoginUserInfoVO loginInfo,
@RequestAttribute AccountVO user, @RequestParam(required = false, name = "id") Long companyId) {
iQuestionBankService.importProjectQuestion(questions, loginInfo.getProject().name(), companyId,user);
iQuestionBankService.importProjectQuestion(questions, loginInfo.getProject(), companyId, user);
}
/**
*更新题目
* 更新题目
*/
@PutMapping(path = "/questions/{questionId}")
public void updateQuestion(@PathVariable Long questionId, @RequestAttribute LoginUserInfoVO loginInfo,@RequestBody QuestionVO questionVO) {
questionVO.setProjectCode(loginInfo.getProject().name());
public void updateQuestion(@PathVariable Long questionId, @RequestAttribute LoginUserInfoVO loginInfo, @RequestBody QuestionVO questionVO) {
questionVO.setProjectCode(loginInfo.getProject());
iQuestionBankService.updateQuestion(questionId, questionVO);
}
/**
*删除题目
* 删除题目
*/
@DeleteMapping(path = "/questions/{questionId}")
public void deleteQuestion(@PathVariable Long questionId) {
@ -91,7 +90,7 @@ public class QuestionBankController {
}
/**
*根据题目查询选项
* 根据题目查询选项
*/
@GetMapping(path = "/questions/{questionId}/options")
public List<QuestionOptionVO> getOptionsByQuestionId(@PathVariable Long questionId) {
@ -99,22 +98,20 @@ public class QuestionBankController {
}
/**
*根据题型获取题目数量
* 根据题型获取题目数量
*/
@GetMapping(path = "/number")
public Integer getNumberUnderKnowledgeAndType(@RequestAttribute LoginUserInfoVO loginInfo, String type, Long companyId) {
return iQuestionBankService.getNumberWithType(type, loginInfo.getProject().name(), companyId);
return iQuestionBankService.getNumberWithType(type, loginInfo.getProject(), companyId);
}
/**
*获取题型数量
* 获取题型数量
*/
@GetMapping(path = "/type/number")
public List<TheoryQuestionCountVO> getNumberUnderKnowledgeAndType(@RequestAttribute LoginUserInfoVO loginInfo, @RequestParam(required = false) Long companyId) {
String projectCode = Project.isDefault(loginInfo.getProject()) ? null : loginInfo.getProject().name();
return iQuestionBankService.countNumByType(projectCode, companyId);
return iQuestionBankService.countNumByType(loginInfo.getProject(), companyId);
}
}

View File

@ -0,0 +1,70 @@
package club.joylink.rtss.controller.draft;
import club.joylink.rtss.services.draftData.DraftMapDisStationService;
import club.joylink.rtss.vo.client.PageQueryVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.map.logic.MapDisStationNewVO;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 草稿地图 调度台 接口
* <p>
* 接口中路径参数id mapId
*/
@RestController
@RequestMapping("/api/draftMap/{id}/disStation")
@Slf4j
public class DraftMapDisStationController {
@Autowired
private DraftMapDisStationService draftMapDisStationService;
/**
* 创建调度台逻辑数据
*/
@PostMapping
public void create(@RequestBody MapDisStationNewVO disStationNewVO){
this.draftMapDisStationService.create(disStationNewVO);
}
/**
* 更新调度台业务
*/
@PutMapping
public void update(@RequestBody MapDisStationNewVO vo){
this.draftMapDisStationService.update(vo);
}
/**
* 删除调度台业务
*/
@DeleteMapping("/{code}")
public void delete(@PathVariable("id") Long mapId,@PathVariable("code") String code){
this.draftMapDisStationService.delete(mapId,code);
}
/**
* 分页获取调度台
*/
@PostMapping("/page")
public PageVO<MapDisStationNewVO> findByPage(@PathVariable("id") Long mapId, @RequestBody FindByPageReq req){
return this.draftMapDisStationService.findByPage(mapId,req);
}
/**
* 列表查询所有调度台
*/
@GetMapping("/list")
public List<MapDisStationNewVO> listQuery(@PathVariable long id) {
return draftMapDisStationService.listQuery(id);
}
@Data
public static class FindByPageReq extends PageQueryVO{
/**
* 是否降序true-降序false-升序默认值为true;
*/
private Boolean desc = true;
}
}

View File

@ -0,0 +1,29 @@
package club.joylink.rtss.controller.org;
import club.joylink.rtss.services.org.IOrgService;
import club.joylink.rtss.vo.client.org.OrgVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 组织相关数据管理
*/
@RestController
@RequestMapping("/api/org")
public class OrgController {
@Autowired
private IOrgService iOrgService;
/**
* 列表查询该组织下的所有班级
*/
@GetMapping("/{topOrgId}/cls/list")
public List<OrgVO> listQueryCls(@PathVariable long topOrgId) {
return iOrgService.listQueryCls(topOrgId);
}
}

View File

@ -0,0 +1,96 @@
package club.joylink.rtss.controller.org;
import club.joylink.rtss.constants.Project;
import club.joylink.rtss.dao.OrgDAO;
import club.joylink.rtss.dao.OrgProjectDAO;
import club.joylink.rtss.dao.project.ProjectDAO;
import club.joylink.rtss.entity.Org;
import club.joylink.rtss.entity.OrgExample;
import club.joylink.rtss.entity.OrgProject;
import club.joylink.rtss.services.org.IOrgProjectService;
import club.joylink.rtss.vo.LoginUserInfoVO;
import club.joylink.rtss.vo.client.org.OrgProjectVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* 组织-项目关系管理接口
*/
@Slf4j
@RestController
@RequestMapping("/api/orgProject")
public class OrgProjectController {
@Autowired
private IOrgProjectService orgProjectService;
/**
* 用户登录时要选择的组织列表(目前先查询顶级组织)
*/
@GetMapping("list")
public List<OrgProjectVO> queryOrgList(@RequestAttribute LoginUserInfoVO loginInfo) {
return orgProjectService.queryOrgProjectListByProjectAndUid(loginInfo.getProjectInfo(), loginInfo.getAccountVO().getId());
}
/**
* 选择登入组织(目前先查询顶级组织)
*/
@PutMapping("signIn/{orgId}")
public void signInOrg(@PathVariable Long orgId, @RequestAttribute LoginUserInfoVO loginInfo) {
orgProjectService.signInOrg(orgId, loginInfo);
}
@Autowired
private OrgProjectDAO orgProjectDAO;
@Autowired
private OrgDAO orgDAO;
@Autowired
ProjectDAO projectDAO;
/**
* 旧数据处理用完删除
*/
@Transactional(rollbackFor = Exception.class)
@PostMapping("/oldData/handle")
public void oldDataHandle() {
orgProjectDAO.deleteByExample(null);
//查询项目和组织数据
Map<String, club.joylink.rtss.entity.project.Project> projectMap = projectDAO.selectByExample(null).stream()
.collect(Collectors.toMap(club.joylink.rtss.entity.project.Project::getCode, Function.identity()));
OrgExample orgExample = new OrgExample();
orgExample.clear();
orgExample.createCriteria().andStatusEqualTo("1").andParentIdIsNull();
Map<String, Org> orgMap = orgDAO.selectByExample(orgExample).stream()
.collect(Collectors.toMap(Org::getProjectCode, Function.identity()));
OrgProject orgProject = new OrgProject();
orgProject.setCreateTime(LocalDateTime.now());
orgProject.setCreatorId(1L);
for (Map.Entry<String, club.joylink.rtss.entity.project.Project> entry : projectMap.entrySet()) {
String projectCode = entry.getKey();
club.joylink.rtss.entity.project.Project project = entry.getValue();
//建立项目-组织关系
Org org = orgMap.get(projectCode);
if (org == null) {
org = orgMap.get(Project.DEFAULT.name());
}
orgProject.setId(null);
orgProject.setProjectCode(projectCode);
orgProject.setOrgId(org.getId());
log.info(orgProject.getOrgId() + "-" + orgProject.getProjectCode());
orgProjectDAO.insert(orgProject);
//修改项目默认组织
project.setDefaultOrg(org.getId());
projectDAO.updateByPrimaryKey(project);
}
}
}

View File

@ -0,0 +1,54 @@
package club.joylink.rtss.controller.org;
import club.joylink.rtss.constants.RoleEnum;
import club.joylink.rtss.controller.advice.Role;
import club.joylink.rtss.services.org.OrgUserManageService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.org.OrgUserParam;
import club.joylink.rtss.vo.org.OrgUserQueryParam;
import club.joylink.rtss.vo.org.OrgUserRoleVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 组织-用户-管理列表
*/
@RestController
@RequestMapping("/api/manage")
public class OrgUserManageController {
@Autowired
private OrgUserManageService orgUserManageService;
/**
* 修改角色关系时查询用户列表
*/
@Role({RoleEnum.Admin, RoleEnum.SuperAdmin})
@GetMapping(path = "/user/list")
public List<AccountVO> queryUserList(OrgUserQueryParam param) {
return orgUserManageService.queryUserList(param);
}
/**
* 绑定用户角色
*/
@Role({RoleEnum.Admin, RoleEnum.SuperAdmin})
@PostMapping("/bind/org")
public void bindOrgUserRole(@RequestBody OrgUserParam param) {
orgUserManageService.bindOrgUserRole(param);
}
/**
* 根据用户查询用户角色列表
*
* @param uid 用户ID
* @return 角色列表
*/
@Role({RoleEnum.Admin, RoleEnum.SuperAdmin})
@GetMapping("/{uid}/roles")
public List<OrgUserRoleVO> queryUserRoleList(@PathVariable Long uid){
return orgUserManageService.queryUserRoleList(uid);
}
}

View File

@ -0,0 +1,135 @@
package club.joylink.rtss.controller.paper;
import club.joylink.rtss.constants.RoleEnum;
import club.joylink.rtss.controller.advice.Role;
import club.joylink.rtss.services.paper.PagerQuestionService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.LoginUserInfoVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.client.pager.question.PagerLableQueryVO;
import club.joylink.rtss.vo.client.pager.question.PaperQuestionVO;
import club.joylink.rtss.vo.client.pager.question.QuestionQueryVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.Collection;
import java.util.List;
/**
* 题库管理接口
*/
@RestController
@RequestMapping(path = "/api/question")
public class PagerQuestionBankController {
@Autowired
private PagerQuestionService questionBankService;
/**
* 管理查询题库
*/
@Role(value = RoleEnum.SuperAdmin)
@GetMapping(path = "/paging")
public PageVO<PaperQuestionVO> pagingQueryQuestions(QuestionQueryVO queryVO) {
queryVO.setOrgId(queryVO.getOrgId());
return questionBankService.pagingQueryQuestions(queryVO,true);
}
/**
* 分页查询题目
*/
@GetMapping(path = "/org/paging")
public PageVO<PaperQuestionVO> pagingQueryQuestions(@RequestAttribute LoginUserInfoVO loginInfo, QuestionQueryVO queryVO) {
queryVO.setOrgId(loginInfo.getTopOrgId());
return questionBankService.pagingQueryQuestions(queryVO,false);
}
/**
* 查询题目列表
*/
@GetMapping(path = "/org")
public List<PaperQuestionVO> queryQuestions(@RequestAttribute LoginUserInfoVO loginInfo, QuestionQueryVO queryVO) {
queryVO.setOrgId(loginInfo.getTopOrgId());
return questionBankService.queryQuestions(queryVO,false);
}
/**
* 获取题目信息或预览
*/
@GetMapping(path = "/org/{questionId}")
public PaperQuestionVO getQuestion(@PathVariable Long questionId,@RequestParam(name = "random",defaultValue = "false") boolean random) {
return questionBankService.getQuestion(questionId, false,random);
}
@PostMapping(path = "/org/test/answer/{questionId}")
public boolean testAnswer(@PathVariable Long questionId,@RequestBody List<Integer> answers){
return this.questionBankService.answer(questionId,answers);
}
/**
* 添加题目
*/
@PostMapping(path = "/org")
public void addQuestion(@Validated @RequestBody PaperQuestionVO questionVO, @RequestAttribute LoginUserInfoVO loginInfo) {
questionVO.setOrgId(loginInfo.getTopOrgId());
questionBankService.saveOrUpdate(questionVO, loginInfo.getAccountVO());
}
/**
* 导入项目或单位试题库
*/
@PostMapping(path = "/org/import")
public void importProjectQuestion(@Validated @RequestBody List<PaperQuestionVO> questions, @RequestAttribute LoginUserInfoVO loginInfo) {
questionBankService.importProjectQuestion(questions, loginInfo.getTopOrgId(), loginInfo.getAccountVO());
}
@GetMapping(path="/org/clear")
public void clearAllForOrg(@RequestAttribute LoginUserInfoVO loginInfo){
this.questionBankService.clearAllForOrgId(loginInfo);
}
/**
* 根据companyId 查询所有的标签
*
*/
@GetMapping(path = "/org/label")
public Collection<String> findAllLable(@RequestAttribute LoginUserInfoVO loginInfo,@RequestParam(name="type",required = false) String type) {
return this.questionBankService.findAllLable(loginInfo.getTopOrgId() ,type);
}
/**
* 根据标签查询所有的题型
*
*/
@PostMapping(path = "/org/label/question")
public List<PaperQuestionVO> findByLable(@RequestAttribute LoginUserInfoVO loginInfo, @RequestBody PagerLableQueryVO queryVO) {
return this.questionBankService.queryQuestionsForRaceLable(loginInfo.getTopOrgId(),queryVO);
}
/**
* 更新题目
*
*/
@PutMapping(path = "/org/{questionId}")
public void updateQuestion(@PathVariable Long questionId, @RequestAttribute LoginUserInfoVO loginInfo, @RequestBody PaperQuestionVO questionVO, @RequestAttribute AccountVO user) {
questionVO.setId(questionId);
questionVO.setOrgId(loginInfo.getTopOrgId());
questionBankService.saveOrUpdate(questionVO, user);
}
/**
* 删除题目
*/
@DeleteMapping(path = "/org")
public void deleteQuestion(@RequestBody List<Long> questionId) {
questionBankService.deleteQuestion(questionId);
}
}

View File

@ -0,0 +1,254 @@
package club.joylink.rtss.controller.paper;
import club.joylink.rtss.constants.RoleEnum;
import club.joylink.rtss.controller.advice.Role;
import club.joylink.rtss.dao.*;
import club.joylink.rtss.dao.paper.PaperCompositionDAO;
import club.joylink.rtss.dao.paper.PaperUserDAO;
import club.joylink.rtss.entity.*;
import club.joylink.rtss.entity.paper.PaperComposition;
import club.joylink.rtss.entity.paper.PaperCompositionExample;
import club.joylink.rtss.entity.paper.PaperUser;
import club.joylink.rtss.exception.BusinessExceptionAssertEnum;
import club.joylink.rtss.services.IMapService;
import club.joylink.rtss.services.paper.PaperCompositionService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.map.MapVO;
import club.joylink.rtss.vo.paper.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* 试卷蓝图业务接口
* <p>
* 试卷蓝图状态解释<br>
* 编辑中-可以修改删除;封存-不可以修改删除可以用来生成试卷可以状态迁移编辑中和已使用已使用-已经被用来生成过试卷不可以修改删除状态也不能改变
*/
@Slf4j
@RestController
@RequestMapping("/api/v2/paper/composition")
public class PaperCompositionController {
@Autowired
private PaperCompositionService compositionService;
/**
* 数据管理查询
*
* @param req
* @return
*/
@Role(value = RoleEnum.SuperAdmin)
@PostMapping(path = "/manage/paging")
public PageVO<PaperCompositionWithRuleVo> findPaperCompositionForPage(@RequestBody FindPaperCompositionPageReqVo req) {
return this.compositionService.findPaperCompositionByPage(req);
}
/**
* 创建试卷蓝图包括规则定义
* 参数 tags 只支持单个
*
* @param orgId 组织id
*/
@PostMapping("/{orgId}")
public CreatePaperCompositionRspVo createPaperCompositionWithRuleForOrg(@PathVariable("orgId") Long orgId, @RequestBody PaperCompositionWithRuleVo req, @RequestAttribute AccountVO user) {
req.setOrgId(orgId);
return this.compositionService.createPaperCompositionWithRule(req, user);
}
/**
* 更新试卷蓝图包括规则定义
* 参数 tags 只支持单个
*/
@PutMapping
public void updatePaperCompositionWithRule(@RequestBody PaperCompositionWithRuleVo req, @RequestAttribute AccountVO user) {
this.compositionService.updatePaperCompositionWithRule(req, user);
}
/**
* 将编辑好的试卷蓝图封存
*/
@PutMapping("/{pcId}/lock")
public void lockPaperComposition(@PathVariable("pcId") Long pcId, @RequestAttribute AccountVO user) {
compositionService.lockPaperComposition(pcId, user);
}
/**
* 将封存的试卷蓝图设置失效
*/
@PutMapping("/{pcId}/invalid")
public void invalidPaperComposition(@PathVariable("pcId") Long pcId, @RequestAttribute AccountVO user) {
compositionService.unlockPaperComposition(pcId, user);
}
/**
* 删除试卷蓝图(只能删除处于编辑状态的)
*
* @param pcId 试卷蓝图id
*/
@DeleteMapping("/{pcId}")
public void deletePaperComposition(@PathVariable("pcId") Long pcId, @RequestAttribute AccountVO user) {
compositionService.deletePaperComposition(pcId, user);
}
/**
* 根据(组织id线路id试卷蓝图名称简介)分页查找试卷蓝图
*/
@PostMapping("/find/page")
public PageVO<PaperCompositionWithRuleVo> findPaperCompositionByPage(@RequestBody FindPaperCompositionPageReqVo req) {
return this.compositionService.findPaperCompositionByPage(req);
}
/**
* 根据mapId查询蓝图的基本信息
*
* @return
*/
@PostMapping("/find/list")
public List<PaperCompositionWithRuleVo> findPaperCompositionByList(@RequestBody FindPaperCompositionPageReqVo req) {
return this.compositionService.findPaperCompositionList(req);
}
/**
* 根据试卷蓝图名称简介分页查找某个组织的试卷蓝图
*/
@PostMapping("/find/page/for/{orgId}")
public PageVO<PaperCompositionWithRuleVo> findPaperCompositionForOrgByPage(@PathVariable("orgId") Long orgId, @RequestBody FindPaperCompositionPageReqVo req) {
req.setOrgId(orgId);
return this.compositionService.findPaperCompositionByPage(req);
}
/**
* 根据账户分页查找试卷蓝图
*/
@PostMapping("/find/page/by/account")
public PageVO<PaperCompositionWithRuleVo> findAccountPaperCompositionByPage(@RequestBody FindPaperCompositionByAccountReqVo req) {
return this.compositionService.findPaperCompositionByPageForAccount(req);
}
/**
* 获取试卷完整的蓝图包括规则
*
* @param pcId 试卷蓝图id
*/
@GetMapping("/{pcId}")
public PaperCompositionWithRuleVo findPaperComposition(@PathVariable("pcId") Long pcId, @RequestAttribute AccountVO user) {
return this.compositionService.findPaperComposition(pcId, user);
}
@Autowired
ExamDefinitionDAO examDefinitionDAO;
@Autowired
IMapService iMapService;
@Autowired
OrgDAO orgDAO;
@Autowired
OrgProjectDAO orgProjectDAO;
@Autowired
UserExamMapper userExamMapper;
@Autowired
private PaperUserDAO paperUserDAO;
@Autowired
PaperCompositionDAO paperCompositionDAO;
@Autowired
LsLessonDAO lsLessonDAO;
/**
* 旧数据处理接口用完删除
*/
@Transactional(rollbackFor = Exception.class)
@PostMapping("/oldData/handle")
public List<String> oldDataHandle() {
paperCompositionDAO.deleteByExample(null);
paperUserDAO.deleteByExample(null);
List<String> msg = new ArrayList<>();
//所有在线地图
Map<Long, MapVO> onlineMaps = iMapService.listOnline().stream().collect(Collectors.toMap(MapVO::getId, Function.identity()));
//在线地图的有效试卷
LsLessonExample lsLessonExample = new LsLessonExample();
lsLessonExample.createCriteria().andMapIdIn(new ArrayList<>(onlineMaps.keySet())).andStatusEqualTo("1");
List<Long> validLessonIds = lsLessonDAO.selectByExample(lsLessonExample)
.stream().map(LsLesson::getId).collect(Collectors.toList());
//所有项目-组织对应关系目前仅教学通用项目
Map<String, Long> projectCode_orgId_map = orgProjectDAO.selectByExample(null).stream()
.collect(Collectors.toMap(OrgProject::getProjectCode, OrgProject::getOrgId, (oId1, oId2) -> oId1));
//转化试卷并记录试卷id变化
ExamDefinitionExample examDefinitionExample = new ExamDefinitionExample();
examDefinitionExample.createCriteria().andStatusEqualTo("1").andLessonIdIn(validLessonIds);
Map<Long, Long> old_newExamIdMap = new HashMap<>();
examDefinitionDAO.selectByExample(examDefinitionExample).stream()
.peek(exam -> {
if (exam.getOrgId() != null) {
return;
}
MapVO map = onlineMaps.get(exam.getMapId());
String projectCode = map.getProjectCode();
if (StringUtils.hasText(projectCode)) {
exam.setOrgId(projectCode_orgId_map.get(projectCode));
}
})
.filter(exam -> exam.getOrgId() != null)
.forEach(exam -> {
PaperCompositionWithRuleVo paperCompositionWithRuleVo = new PaperCompositionWithRuleVo();
paperCompositionWithRuleVo.setMapId(exam.getMapId());
paperCompositionWithRuleVo.setName(exam.getName());
paperCompositionWithRuleVo.setProfile(exam.getRemarks());
// paperCompositionWithRuleVo.setOrgId(exam.getOrgId());
paperCompositionWithRuleVo.setStartTime(exam.getStartTime());
paperCompositionWithRuleVo.setEndTime(exam.getEndTime());
paperCompositionWithRuleVo.setValidDuration(exam.getDuration() / 60);
paperCompositionWithRuleVo.setPassScore(exam.getPassingPoint());
paperCompositionWithRuleVo.setFullScore(exam.getFullPoint());
// paperCompositionWithRuleVo.setCreatorId(exam.getCreatorId());
paperCompositionWithRuleVo.setCreateTime(exam.getCreateTime());
paperCompositionWithRuleVo.setUpdateTime(null);
paperCompositionWithRuleVo.setState(PaperCompositionState.Invalid);
AccountVO creator = new AccountVO();
creator.setId(exam.getCreatorId());
CreatePaperCompositionRspVo paperComposition = createPaperCompositionWithRuleForOrg(exam.getOrgId(), paperCompositionWithRuleVo, creator);
old_newExamIdMap.put(exam.getId(), paperComposition.getId());
});
//将所有试卷状态改为失效
PaperCompositionExample paperCompositionExample = new PaperCompositionExample();
paperCompositionExample.createCriteria().andIdIn(new ArrayList<>(old_newExamIdMap.values()));
PaperComposition paperComposition = new PaperComposition();
paperComposition.setState(PaperCompositionState.Invalid.getValue());
paperCompositionDAO.updateByExampleSelective(paperComposition, paperCompositionExample);
//查询试卷记录
ArrayList<Long> oldExamIds = new ArrayList<>(old_newExamIdMap.keySet());
UserExamExample userExamExample = new UserExamExample();
userExamExample.createCriteria().andExamIdIn(oldExamIds);
List<UserExam> userExams = userExamMapper.selectByExample(userExamExample);
//转化试卷记录
LocalDateTime now = LocalDateTime.now();
for (UserExam userExam : userExams) {
PaperUser paperUser = new PaperUser();
paperUser.setUserId(userExam.getUserId());
Long newExamId = old_newExamIdMap.get(userExam.getExamId());
BusinessExceptionAssertEnum.SYSTEM_EXCEPTION.assertNotNull(newExamId);
paperUser.setPcId(newExamId);
paperUser.setScore(userExam.getScore().intValue());
paperUser.setStartTime(userExam.getStartTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
if (userExam.getEndTime() != null) {
paperUser.setEndTime(userExam.getEndTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
}
paperUser.setCreateTime(now);
paperUserDAO.insert(paperUser);
}
return msg;
}
}

View File

@ -0,0 +1,165 @@
package club.joylink.rtss.controller.paper;
import club.joylink.rtss.services.paper.*;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.paper.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Collection;
import java.util.List;
/**
* 用户试卷
*/
@Slf4j
@RestController
@RequestMapping("/api/v2/paper")
public class PaperUserController {
@Autowired
private PaperUserService paperUserService;
@Autowired
private PaperUserCreateService paperUserCreateService;
@Autowired
private PaperUserLoadQuestionService paperUserLoadQuestionService;
@Autowired
private PaperUserSubmitAnswerService paperUserSubmitAnswerService;
@Autowired
private PaperUserFindPageService paperUserFindPageService;
/**
* 根据试卷蓝图生成用户的试卷
*
* @param pcId 试卷蓝图id
*/
@PostMapping("/{pcId}")
public CreatePaperRspVo createPaper(@PathVariable("pcId") Long pcId, @RequestAttribute AccountVO user) {
return this.paperUserCreateService.createPaper(pcId, user);
}
/**
* 获取用户试卷完整信息
*
* @param puId 用户试卷id
*/
@GetMapping("/user/{puId}")
public PaperUserWholeVo findPaperUser(@PathVariable("puId") Long puId, @RequestAttribute AccountVO user) {
return this.paperUserService.findPaperUser(puId);
}
/**
* 删除用户试卷
*
* @param puId 用户试卷id
*/
@DeleteMapping("/user/{puId}")
public void deletePaperUser(@PathVariable("puId") Long puId, @RequestAttribute AccountVO user) {
this.paperUserService.deletePaperUser(puId);
}
/**
* 开始答题
*
* @param puId 用户试卷id
*/
@PostMapping("/user/{puId}/start")
public void paperStart(@PathVariable("puId") Long puId, @RequestAttribute AccountVO user) {
this.paperUserService.paperStart(puId);
}
/**
* 用户交卷
*
* @param puId 用户试卷id
*/
@PostMapping("/user/{puId}/submit")
public PaperSubmitRspVo paperSubmit(@PathVariable("puId") Long puId, @RequestAttribute AccountVO user) {
return this.paperUserService.paperSubmit(puId);
}
/**
* 加载用户试卷试题
* @param groupType 试卷试题大类型:1-理论题2-实训题
* @param qId 试题id
* @param puId 试卷id
* @return
*/
@GetMapping("/user/question/{groupType}/{qId}/{puId}")
public PaperQuestionLoadRspVo loadQuestion(@PathVariable("groupType") Integer groupType, @PathVariable("qId") Long qId,@PathVariable("puId") Long puId, @RequestAttribute AccountVO user) {
PaperQType.GroupType pgType = PaperQType.GroupType.getItem(groupType);
return this.paperUserLoadQuestionService.loadQuestion(pgType, qId,puId, user);
}
/**
* 用户提交答案
* <p>
* 对于理论题用户完成一道题提交一道题的答案<br>
* 对于实训题用户完成实训操作后由实训系统自己评判实训是否成功完成前端提交实训是否成功完成的结果即可
*/
@PostMapping("/user/question/answer")
public PaperSubmitAnswerRspVo submitAnswer(@RequestBody PaperSubmitAnswerReqVo req, @RequestAttribute AccountVO user) {
return this.paperUserSubmitAnswerService.submitAnswer(req, user);
}
/**
* 分页查询某个试卷蓝图的所有用户试卷基本信息
*/
/* @PostMapping("/user/page/composition")
public PageVO<PaperUserInfoVo> findPaperUserByPage(@RequestBody FindPaperUserForCompositionReqVo req, @RequestAttribute AccountVO user) {
return this.paperUserFindPageService.findPaperUserByPage(req);
}*/
/**
* 查看某个班级的某个试卷蓝图的所有学生试卷
*/
@GetMapping("/user/page")
public PageVO<PageUserDetailVO> findPaperUserByPageForClass(@ModelAttribute PageUserDetailQuery req) {
return this.paperUserFindPageService.findPaperUserByPageForClass(req);
}
/**
* 查看某个班级的某个试卷蓝图的所有学生试卷 (柱状图)
* @param req
* @return
*/
@GetMapping("/user/curve")
public CurveForClassVO curveForClass(@ModelAttribute PageUserDetailQuery req) {
return this.paperUserFindPageService.curveForClass(req);
}
/**
* 查看某个账户的某个试卷蓝图的用户试卷
*/
/* @PostMapping("/user/list/account")
public List<PaperUserInfoVo> findPaperUserForAccount(@RequestBody FindPaperUserForAccountReqVo req, @RequestAttribute AccountVO user) {
return this.paperUserFindPageService.findPaperUserForAccount(req);
}*/
/**
* 查看组织的某个账户的某个试卷蓝图的用户试卷
*/
/* @PostMapping("/{orgId}/user/list/account")
public List<PaperUserInfoVo> findOrgPaperUserForAccount(@PathVariable("orgId") Long orgId, @RequestBody FindPaperUserForAccountReqVo req, @RequestAttribute AccountVO user) {
req.setOrgId(orgId);
return this.paperUserFindPageService.findPaperUserForAccount(req);
}*/
@PostMapping("/question/label")
public Collection<String> paperAllLabel(@RequestBody FindCountForQuestionReqVo req){
return this.paperUserService.findAllLabel(req);
}
/**
* 查看组织下某个类型题的数量
* 参数 tags 目前只支持单个
*/
@PostMapping("/{orgId}/question/count")
public Long findCountForQuestion(@PathVariable("orgId") Long orgId, @RequestBody FindCountForQuestionReqVo req) {
req.setOrgId(orgId);
return this.paperUserService.findCountForQuestion(req.getOrgId(), req.getGroupType(), req.getSubType(), req.getTags());
}
}

View File

@ -1,6 +1,5 @@
package club.joylink.rtss.controller.permission;
import club.joylink.rtss.constants.Project;
import club.joylink.rtss.constants.RoleEnum;
import club.joylink.rtss.controller.advice.AuthenticateInterceptor;
import club.joylink.rtss.controller.advice.Role;
@ -20,7 +19,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
*权限分发管理接口
* 权限分发管理接口
*/
@RestController
@RequestMapping("/api/distribute")
@ -30,7 +29,7 @@ public class PermissionDistributeController {
private IPermissionDistributeService permissionDistributeService;
/**
*分页查询权限分发数据
* 分页查询权限分发数据
*/
@GetMapping(path = "")
public PageVO<DistributeVO> queryPagedDistribute(PermissionDistributeQueryVO queryVO) {
@ -38,7 +37,7 @@ public class PermissionDistributeController {
}
/**
*生成打包分发二维码
* 生成打包分发二维码
*/
@GetMapping(path = "/package/qrCode")
public String generateQrCode(Long id, @RequestAttribute(value = AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO loginInfo) {
@ -46,7 +45,7 @@ public class PermissionDistributeController {
}
/**
*权限分发立即失效
* 权限分发立即失效
*/
@GetMapping(path = "/{id}/invalid")
public void immediateInvalid(@PathVariable Long id) {
@ -54,7 +53,7 @@ public class PermissionDistributeController {
}
/**
*从订单分发权限获取权限分发二维码
* 从订单分发权限获取权限分发二维码
*/
@GetMapping(path = "/{orderCode}/distribute")
public String givePermission(@PathVariable String orderCode, @RequestAttribute LoginUserInfoVO loginInfo) {
@ -62,7 +61,7 @@ public class PermissionDistributeController {
}
/**
*权限获取
* 权限获取
*/
@GetMapping(path = "/getPermission")
public void getPermission(Long state, @RequestAttribute AccountVO user) {
@ -71,6 +70,7 @@ public class PermissionDistributeController {
/**
* 将权限分发包分发给指定账户
*
* @param id
* @param accountId
* @param user
@ -82,7 +82,7 @@ public class PermissionDistributeController {
}
/**
*快速生成权限分发
* 快速生成权限分发
*/
@PostMapping(path = "/createQuickly")
public String createQuickly(@RequestBody OrderCreateVO orderCreateVO, @RequestAttribute LoginUserInfoVO loginInfo) {
@ -90,7 +90,7 @@ public class PermissionDistributeController {
}
/**
*微信小程序扫码获取权限
* 微信小程序扫码获取权限
*/
@GetMapping(path = "/permission")
public List<UserPermissionVO> wmGetPermission(String code, Long id) {
@ -98,7 +98,7 @@ public class PermissionDistributeController {
}
/**
*用户权限转增分发打包生成权限
* 用户权限转增分发打包生成权限
*/
@PostMapping(path = "/packageUserPermission")
public String packageUserPermission(@RequestBody @Validated UserPermissionDistributeVO userPermissionAndAmountVO, @RequestAttribute LoginUserInfoVO loginInfo) {
@ -106,7 +106,7 @@ public class PermissionDistributeController {
}
/**
*查询个人权限分发列表
* 查询个人权限分发列表
*/
@GetMapping(path = "/personal")
public List<DistributeVO> queryPersonalDistributeList(@RequestAttribute AccountVO user) {
@ -114,7 +114,7 @@ public class PermissionDistributeController {
}
/**
*查询权限分发领取用户列表
* 查询权限分发领取用户列表
*/
@GetMapping(path = "/{id}/users")
public List<UserPermissionVO> queryDistributeGetUsers(@PathVariable Long id, @RequestAttribute AccountVO user) {
@ -122,7 +122,7 @@ public class PermissionDistributeController {
}
/**
*回收权限分发到用户权限中
* 回收权限分发到用户权限中
*/
@PutMapping(path = "/{id}/restore")
public void restore(@PathVariable Long id) {
@ -130,7 +130,7 @@ public class PermissionDistributeController {
}
/**
*查询权限分发包详情
* 查询权限分发包详情
*/
@GetMapping(path = "/package/{id}/detail")
public PageVO<DistributeVO> queryPackageDetail(@PathVariable Long id,
@ -143,7 +143,7 @@ public class PermissionDistributeController {
*创建项目下所有地图权限的权限分发
*/
@PostMapping("/{project}/allMap/distribute")
public String createAllMapDistribute(@PathVariable Project project, Integer num, @RequestAttribute LoginUserInfoVO loginInfo) {
public String createAllMapDistribute(@PathVariable String project, Integer num, @RequestAttribute LoginUserInfoVO loginInfo) {
return permissionDistributeService.createAllMapDistribute(project, num, loginInfo);
}

View File

@ -0,0 +1,104 @@
package club.joylink.rtss.controller.permission2;
import club.joylink.rtss.services.permission.AcPermissionService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.permission.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 权限管理接口V2
*/
@RestController
@RequestMapping("/api/v2/permission")
public class AcPermissionController {
@Autowired
private AcPermissionService permissionService;
/**
* 创建权限
*
* @return 如果创建成功则返回权限id
*/
@PostMapping("/create")
public String createPermission(@RequestBody CreatePermissionReqVo req, @RequestAttribute AccountVO user) {
return this.permissionService.createPermission(req, user);
}
/**
* 权限修改
* @param req
* @param user
* @return
*/
@PutMapping("/update")
public String updatePermission(@RequestBody CreatePermissionReqVo req, @RequestAttribute AccountVO user) {
return this.permissionService.createPermission(req, user);
}
/**
* 修改权限基础信息(名称和描述)
*/
@PutMapping("/basic")
public void updatePermissionBasic(@RequestBody UpdatePermissionBasicReqVo req) {
this.permissionService.updatePermissionBasic(req);
}
/**
* 给权限添加功能
*
* @param permissionId 权限id
* @param abilityId 权限功能id,即system_ability.id
*/
@PostMapping("/{permissionId}/accept/{abilityId}")
public void addAbilityToPermission(@PathVariable("permissionId") Long permissionId, @PathVariable("abilityId") Long abilityId) {
this.permissionService.addAbilityToPermission(permissionId, abilityId);
}
/**
* 获取权限的所有功能
*
* @param permissionId 权限id
*/
@GetMapping("/{permissionId}/abilities")
public List<PermissionAbilityRspVo> findPermissionAbilities(@PathVariable("permissionId") Long permissionId) {
return this.permissionService.findPermissionAbilities(permissionId);
}
/**
* 查询所有权限列表
* @param name 模糊匹配权限名称
* @return
*/
@GetMapping("/all")
public List<PermissionBasicRspVo> findAllPermission(@RequestParam(value = "name",required = false) String name) {
return this.permissionService.findAllPermission(name);
}
/**
* 删除权限的功能
*/
@DeleteMapping("/{permissionId}/abilities")
public void deleteAbilities(@RequestBody PermissionAbilityDeletedReqVo req) {
this.permissionService.deleteAbilities(req);
}
/**
* 获取一个权限的完整信息
*/
@GetMapping("/{permissionId}/whole")
public WholePermissionRspVo findWholePermission(@PathVariable("permissionId") Long permissionId) {
return this.permissionService.findWholePermission(permissionId);
}
/**
* 分页获取权限
*/
@PostMapping("/find/page")
public PageVO<PermissionBasicRspVo> findByPage(@RequestBody FindPermissionBasicByPageReqVo req) {
return this.permissionService.findByPage(req);
}
}

View File

@ -0,0 +1,73 @@
package club.joylink.rtss.controller.permission2;
import club.joylink.rtss.controller.advice.AuthenticateInterceptor;
import club.joylink.rtss.services.permission.IDistributeService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.LoginUserInfoVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.permission.*;
import club.joylink.rtss.vo.permission.distribute.DistributeDataVO;
import club.joylink.rtss.vo.permission.distribute.DistributeQueryVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 权限分发业务接口V3
*/
@RestController
@RequestMapping("/api/v3/permission/distribute")
public class DistributeController {
@Autowired
private IDistributeService distributeService;
/**
* 创建权限分发
*/
@PostMapping("/create")
public void createDistribute(@RequestBody DistributeDataVO req, @RequestAttribute AccountVO user) {
this.distributeService.create(req,user);
}
/**
* 分页获取权限分发列表
*/
@PostMapping("/paging")
public PageVO<DistributeDataVO> paging(@RequestBody DistributeQueryVO req) {
return this.distributeService.paging(req);
}
/**
* 查看权限分发列表或分页对应的分发明细
* @param disId 分发id
* @return
*/
@GetMapping("/list/distribute/{disId}")
public List<DistributeDataVO.DistributePermissionVO> permissionList(@PathVariable(name="disId") Long disId){
return this.distributeService.distributePermissionRefList(disId);
}
/**
* 生成分发二维码
*
* @param pdId 权限分发id
*/
@GetMapping(path = "/{pdId}/qrCode")
public String generateQrCode(@PathVariable("pdId") Long pdId, @RequestAttribute(value = AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO loginInfo) {
return this.distributeService.generateQrCode(pdId, loginInfo);
}
/**
* 从权限分发直接分发给指定主体
*
* @param pdId 权限分发id
* @param subjectType 主体类型其值为(user,org)user-一般用户org-组织
*
*/
@PostMapping("/{pdId}/to/{subjectType}/{subjectId}")
public void permissionDistributeToSubject(@PathVariable("pdId") Long pdId, @PathVariable("subjectType") String subjectType, @PathVariable("subjectId") Long subjectId) {
final PermissionSubjectTypeEnum subjectTypeEnum = PermissionSubjectTypeEnum.valueOf(subjectType);
this.distributeService.subjectAcceptFromPermissionDistribute(pdId, subjectTypeEnum, subjectId);
}
}

View File

@ -0,0 +1,63 @@
package club.joylink.rtss.controller.permission2;
import club.joylink.rtss.constants.RoleEnum;
import club.joylink.rtss.controller.advice.Role;
import club.joylink.rtss.services.permission.PermissionSubjectService;
import club.joylink.rtss.vo.LoginUserInfoVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.permission.subject.PermissionSubjectQueryVO;
import club.joylink.rtss.vo.permission.subject.PermissionSubjectVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import static club.joylink.rtss.controller.advice.AuthenticateInterceptor.LOGIN_INFO_KEY;
/**
* 主体(用户或组织)的权限管理接口V2<br>
*/
@RestController
@RequestMapping("/api/v2/permission/subject")
public class PermissionSubjectController {
@Autowired
private PermissionSubjectService subjectService;
/**
* 分页获取权限分发列表
*/
@Role(value = RoleEnum.SuperAdmin)
@GetMapping(path = "/page")
public PageVO<PermissionSubjectVO> page(PermissionSubjectQueryVO req) {
return this.subjectService.page(req);
}
/**
* 用户权限失效设置
* @param id
*/
@GetMapping(path = "/inValid/{id}")
public void statusForInValid(@PathVariable Long id){
this.subjectService.subjectAndDistributeStatusForInValid(id);
}
/**
* 查看用户分发的下级所有用户权限
* @param id
*/
@GetMapping(path = "/distribute/{id}")
public List<PermissionSubjectVO> distributePermission(@PathVariable Long id){
List<PermissionSubjectVO> list = this.subjectService.findDistributePermission(id);
return list;
}
/**
* 查看当前mapId 下用户的所有权限及功能
* @param mapId
* @param loginUserInfoVO
* @return
*/
@GetMapping(path = "/permission/{mapId}")
public List<PermissionSubjectVO> findPermissionWithMapIdAndUserInfo(@PathVariable(name="mapId") Long mapId, @RequestAttribute(name=LOGIN_INFO_KEY)LoginUserInfoVO loginUserInfoVO){
return this.subjectService.findPermissionWithMapIdAndUserInfo(mapId,loginUserInfoVO);
}
}

View File

@ -0,0 +1,61 @@
package club.joylink.rtss.controller.permission2;
import club.joylink.rtss.services.permission.SystemAbilityService;
import club.joylink.rtss.vo.LoginUserInfoVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.permission.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import static club.joylink.rtss.controller.advice.AuthenticateInterceptor.LOGIN_INFO_KEY;
/**
* 面向权限的系统功能管理接口V2
*/
@Slf4j
@RestController
@RequestMapping("/api/v2/permission/system/ability")
public class SystemAbilityController {
@Autowired
private SystemAbilityService abilityService;
/**
* 根据权限功能的id查询完整信息
*/
@GetMapping("/{abilityId}")
public SystemAbilityRspVo findById(@PathVariable("abilityId") Long abilityId){
return this.abilityService.findVO(abilityId);
}
/**
* 分页查询权限功能的基本信息
*/
@PostMapping("/page")
public PageVO<SystemAbilityRspVo>findByPage(@RequestBody FindAbilityBasicByPageReqVo req){
return this.abilityService.findByPage(req);
}
/**
* 查询权限功能的基本信息列表
* @return
*/
@GetMapping("/list")
public List<SystemAbilityRspVo> list(FindAbilityBasicByPageReqVo filterVO){
return this.abilityService.findList(filterVO);
}
/**
* 自动生成
* @param userInfoVO
*/
@GetMapping("/autoCreate")
public void autoCreate(@RequestAttribute(value = LOGIN_INFO_KEY) LoginUserInfoVO userInfoVO){
this.abilityService.autoSynchMapSystemData(userInfoVO.getAccountVO().getId());
}
}

View File

@ -2,6 +2,7 @@ package club.joylink.rtss.controller.project;
import club.joylink.rtss.constants.ProjectDeviceType;
import club.joylink.rtss.controller.advice.AuthenticateInterceptor;
import club.joylink.rtss.entity.project.Project;
import club.joylink.rtss.services.project.DeviceService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.LoginUserInfoVO;
@ -14,7 +15,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
*项目设备管理接口()
* 项目设备管理接口()
*/
@RestController
@RequestMapping(path = "/api/device")
@ -24,37 +25,34 @@ public class DeviceController {
private DeviceService deviceService;
/**
*分页查询项目设备
* 分页查询项目设备
*/
@GetMapping("/paging")
public PageVO<ProjectDeviceVO> pagingQuery(ProjectDevicePageQueryVO queryVO,
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY)
LoginUserInfoVO userLoginInfo) {
return this.deviceService.pagingQuery(queryVO, userLoginInfo);
public PageVO<ProjectDeviceVO> pagingQuery(ProjectDevicePageQueryVO queryVO) {
return this.deviceService.pagingQuery(queryVO);
}
/**
*项目设备编号是否已经存在
* 项目设备编号是否已经存在
*/
@GetMapping("/exist/{code}")
public boolean isDeviceCodeExist(@PathVariable String code,
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY)
LoginUserInfoVO userLoginInfo) {
return this.deviceService.isDeviceCodeExist(userLoginInfo.getProject(), code);
public boolean isDeviceCodeExist(@PathVariable String code, String projectCode) {
String project = Project.isDefault(projectCode) ? Project.DEFAULT_PROJECT_CODE : projectCode;
return this.deviceService.isDeviceCodeExist(project, code);
}
/**
*新建项目设备
* 新建项目设备
*/
@PostMapping("")
public String create(@RequestBody @Validated ProjectDeviceVO deviceVO,
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY)
LoginUserInfoVO userLoginInfo) {
LoginUserInfoVO userLoginInfo) {
return this.deviceService.create(deviceVO, userLoginInfo);
}
/**
*获取设备详情包含配置信息
* 获取设备详情包含配置信息
*/
@GetMapping("/{id}")
public ProjectDeviceVO getDeviceDetailInfoById(@PathVariable Long id) {
@ -62,7 +60,7 @@ public class DeviceController {
}
/**
*添加/修改道岔设备网关映射配置
* 添加/修改道岔设备网关映射配置
*/
@PutMapping("/{id}/config/plcgateway")
public void updatePlcGatewayConfig(@PathVariable Long id, @RequestBody @Validated PlcGatewayConfigVO configVO) {
@ -70,7 +68,7 @@ public class DeviceController {
}
/**
*添加/修改道岔设备网关映射配置
* 添加/修改道岔设备网关映射配置
*/
@PutMapping("/{id}/config/switch")
public void updateSwitchConfig(@PathVariable Long id, @RequestBody @Validated SwitchConfigVO configVO) {
@ -78,7 +76,7 @@ public class DeviceController {
}
/**
*添加/修改信号机设备网关映射配置
* 添加/修改信号机设备网关映射配置
*/
@PutMapping("/{id}/config/signal")
public void updateSignalConfig(@PathVariable Long id, @RequestBody @Validated SignalConfigVO configVO) {
@ -86,7 +84,7 @@ public class DeviceController {
}
/**
*添加/修改屏蔽门设备网关映射配置
* 添加/修改屏蔽门设备网关映射配置
*/
@PutMapping("/{id}/config/psc")
public void updatePscConfig(@PathVariable Long id, @RequestBody @Validated PscConfigVO configVO) {
@ -94,7 +92,7 @@ public class DeviceController {
}
/**
*添加/修改屏蔽门设备网关映射配置
* 添加/修改屏蔽门设备网关映射配置
*/
@PutMapping("/{id}/config/psd")
public void updatePsdConfig(@PathVariable Long id, @RequestBody @Validated PsdConfigVO configVO) {
@ -102,7 +100,7 @@ public class DeviceController {
}
/**
*添加/修改屏蔽门设备网关映射配置
* 添加/修改屏蔽门设备网关映射配置
*/
@PutMapping("/{id}/config/psl")
public void updatePslConfig(@PathVariable Long id, @RequestBody @Validated PslConfigVO configVO) {
@ -110,7 +108,7 @@ public class DeviceController {
}
/**
*添加/修改屏蔽门设备网关映射配置
* 添加/修改屏蔽门设备网关映射配置
*/
@PutMapping("/{id}/config/ibp")
public void updateIbpConfig(@PathVariable Long id, @RequestBody @Validated IbpConfigVO configVO) {
@ -118,7 +116,7 @@ public class DeviceController {
}
/**
*添加/修改虚拟IBP盘配置
* 添加/修改虚拟IBP盘配置
*/
@PutMapping("/{id}/config/vribp")
public void updateVrIbpConfig(@PathVariable Long id, @RequestBody @Validated VrIbpConfigVO configVO) {
@ -126,7 +124,7 @@ public class DeviceController {
}
/**
*添加/修改现地工作站配置
* 添加/修改现地工作站配置
*/
@PutMapping("/{id}/config/lw")
public void updateLwConfig(@PathVariable Long id, @RequestBody @Validated LwConfigVO configVO) {
@ -134,7 +132,7 @@ public class DeviceController {
}
/**
*添加/修改大屏工作站配置
* 添加/修改大屏工作站配置
*/
@PutMapping("/{id}/config/lsw")
public void updateLswConfig(@PathVariable Long id, @RequestBody @Validated LswConfigVO configVO) {
@ -142,7 +140,7 @@ public class DeviceController {
}
/**
*添加/修改CCTV工作站配置
* 添加/修改CCTV工作站配置
*/
@PutMapping("/{id}/config/cctv")
public void updateCctvConfig(@PathVariable Long id, @RequestBody @Validated RelationLoginConfigVO configVO) {
@ -150,7 +148,7 @@ public class DeviceController {
}
/**
*添加/修改电子沙盘工作站配置
* 添加/修改电子沙盘工作站配置
*/
@PutMapping("/{id}/config/sandbox")
public void updateSandboxConfig(@PathVariable Long id, @RequestBody @Validated RelationLoginConfigVO configVO) {
@ -158,7 +156,7 @@ public class DeviceController {
}
/**
*添加/修改虚拟屏蔽门工作站配置
* 添加/修改虚拟屏蔽门工作站配置
*/
@PutMapping("/{id}/config/vrpsd")
public void updateVrpsdConfig(@PathVariable Long id, @RequestBody @Validated VrpsdConfigVO configVO) {
@ -166,7 +164,7 @@ public class DeviceController {
}
/**
*添加/修改现地综合监控工作站配置
* 添加/修改现地综合监控工作站配置
*/
@PutMapping("/{id}/config/iscslw")
public void updateIscsLwConfig(@PathVariable Long id, @RequestBody @Validated RelationLoginConfigVO configVO) {
@ -174,7 +172,7 @@ public class DeviceController {
}
/**
*添加/修改中心综合监控工作站配置
* 添加/修改中心综合监控工作站配置
*/
@PutMapping("/{id}/config/iscscw")
public void updateIscsCwConfig(@PathVariable Long id, @RequestBody @Validated RelationLoginConfigVO configVO) {
@ -182,7 +180,7 @@ public class DeviceController {
}
/**
*添加/修改联锁工作站配置
* 添加/修改联锁工作站配置
*/
@PutMapping("/{id}/config/ilw")
public void updateIlwConfig(@PathVariable Long id, @RequestBody @Validated RelationLoginConfigVO configVO) {
@ -198,7 +196,7 @@ public class DeviceController {
}
/**
*删除设备
* 删除设备
*/
@DeleteMapping("/{id}")
public void delete(@PathVariable Long id) {
@ -206,13 +204,11 @@ public class DeviceController {
}
/**
*查询某个类型的所有设备
* 查询某个类型的所有设备
*/
@GetMapping("/{type}/all")
public List<ProjectDeviceVO> queryByType(@PathVariable ProjectDeviceType type,
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY)
LoginUserInfoVO userLoginInfo) {
return this.deviceService.queryByType(type, userLoginInfo.getProject());
@GetMapping("/{project}/{type}/all")
public List<ProjectDeviceVO> queryByType(@PathVariable String project, @PathVariable ProjectDeviceType type) {
return this.deviceService.queryByType(type, project);
}
//
@ -223,37 +219,37 @@ public class DeviceController {
// }
@PostMapping("/xty/addOrUpdate")
public void addOrUpdateXtyDeviceConfig(@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO) {
AccountVO accountVO) {
this.deviceService.addOrUpdateXtyDeviceConfig(accountVO);
}
@PostMapping("/gzb/addOrUpdate")
public void addOrUpdateGzbDeviceConfig(@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO) {
AccountVO accountVO) {
this.deviceService.addOrUpdateGzbDeviceConfig(accountVO);
}
@PostMapping("/sdy/addOrUpdate")
public void addOrUpdateSdyDeviceConfig(@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO) {
AccountVO accountVO) {
this.deviceService.addOrUpdateSdyDeviceConfig(accountVO);
}
@PostMapping("/zjd/addOrUpdate")
public void addOrUpdateZjdDeviceConfig(@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO) {
AccountVO accountVO) {
this.deviceService.addOrUpdateRichorDeviceConfig(accountVO);
}
@PostMapping("/sr/addOrUpdate/{mapId}")
public void addOrUpdateSrDeviceConfig(@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO, @PathVariable Long mapId) {
AccountVO accountVO, @PathVariable Long mapId) {
this.deviceService.addOrUpdateSrDeviceConfig(accountVO, mapId);
}
@PostMapping("/hhcj/addOrUpdate")
public void addOrUpdateHhcjDeviceConfig(@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO) {
AccountVO accountVO) {
this.deviceService.addOrUpdateHhcjDeviceConfig(accountVO);
}

View File

@ -0,0 +1,131 @@
package club.joylink.rtss.controller.project;
import club.joylink.rtss.controller.advice.AuthenticateInterceptor;
import club.joylink.rtss.entity.project.Project;
import club.joylink.rtss.entity.project.ProjectView;
import club.joylink.rtss.services.project.ProjectService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.client.org.OrgVO;
import club.joylink.rtss.vo.project.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 项目设备管理接口()
*/
@RestController
@RequestMapping(path = "/api/project")
public class ProjectInfoController {
@Autowired
private ProjectService projectService;
@GetMapping("/page")
public PageVO<ProjectInfoVO> pagingQuery(ProjectQueryVO queryVO) {
return projectService.pagingQuery(queryVO);
}
@GetMapping("/all")
public List<ProjectInfoVO> getAllProject() {
return projectService.getAllProject();
}
@GetMapping("/{id}")
public Project getProjectById(@PathVariable Long id) {
return projectService.queryProjectById(id);
}
@GetMapping("/code/{code}")
public Project getProjectByCode(@PathVariable String code){
return projectService.queryProjectByCode(code);
}
@DeleteMapping("/del/{id}")
public void delProjectById(@PathVariable Long id) {
projectService.deleteProject(id);
}
@PutMapping("/update")
public void updateProject(@RequestBody Project project) {
projectService.updateProject(project);
}
@PostMapping("/save")
public void saveProject(@RequestBody Project project) {
projectService.save(project);
}
@GetMapping("/check/code")
public boolean checkProjectCode(String code) {
return projectService.checkProjectCode(code);
}
@PutMapping("/setDefaultOrg")
public void setProjectDefaultOrg(@RequestBody Project project) {
projectService.setProjectDefaultOrg(project.getId(), project.getDefaultOrg());
}
@GetMapping("/{id}/orgList")
public List<OrgVO> orgList(@PathVariable Long id) {
return projectService.projectOrgList(id);
}
@PostMapping("/{id}/createDefaultOrg")
public ProjectInfoVO quickCreateDefaultOrg(@PathVariable Long id, @RequestBody OrgVO orgVO
, @RequestAttribute(AuthenticateInterceptor.LOGIN_USER_KEY) AccountVO user) {
return projectService.quickCreateDefaultOrg(id, orgVO, user);
}
@GetMapping("/viewSetting/page")
public PageVO<ProjectView> projectViewPagingQuery(ProjectViewQueryVO queryVO) {
return projectService.projectViewPagingQuery(queryVO);
}
@GetMapping("/viewSetting/all")
public List<ProjectView> getAllProjectView() {
return projectService.getAllProjectView();
}
@GetMapping("/viewSetting/{id}")
public ProjectView getProjectViewById(@PathVariable Long id) {
return projectService.queryProjectViewById(id);
}
@DeleteMapping("/viewSetting/del/{id}")
public void delProjectViewById(@PathVariable Long id) {
projectService.deleteProjectView(id);
}
@PutMapping("/viewSetting/update")
public void updateProjectView(@RequestBody ProjectView projectView) {
projectService.updateProjectView(projectView);
}
@PostMapping("/viewSetting/save")
public void saveProjectView(@RequestBody ProjectView projectView) {
projectService.saveProjectView(projectView);
}
@GetMapping("/check/markKey")
public boolean checkProjectViewMarkKey(String markKey) {
return projectService.checkProjectViewMarkKey(markKey);
}
@GetMapping("/simple")
public List<ProjectVO> queryProjectSimpleInfo() {
return projectService.getSimpleProjectList();
}
@GetMapping("/viewSetting/project/{project}")
public ProjectViewVO queryProjectViewSetting(@PathVariable String project) {
return projectService.getProjectViewSetting(project);
}
@GetMapping("/viewSetting/simple/all")
public List<ProjectViewVO> queryViewAll() {
return projectService.queryViewAll();
}
}

View File

@ -6,6 +6,7 @@ import club.joylink.rtss.controller.advice.Role;
import club.joylink.rtss.services.IMapService;
import club.joylink.rtss.services.IReleaseService;
import club.joylink.rtss.services.local.LocalDataService;
import club.joylink.rtss.simulation.cbtc.Simulation;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.LoginUserInfoVO;
import club.joylink.rtss.vo.client.*;
@ -14,10 +15,7 @@ import club.joylink.rtss.vo.client.map.MapCopyOption;
import club.joylink.rtss.vo.client.map.MapInfoUpdateVO;
import club.joylink.rtss.vo.client.validGroup.MapInfoSortCheck;
import club.joylink.rtss.vo.map.*;
import club.joylink.rtss.vo.map.graph.MapPSDVO;
import club.joylink.rtss.vo.map.graph.MapSectionNewVO;
import club.joylink.rtss.vo.map.graph.MapStationNewVO;
import club.joylink.rtss.vo.map.graph.MapStationStandNewVO;
import club.joylink.rtss.vo.map.graph.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -25,6 +23,7 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;
/**
*发布地图管理接口
@ -398,4 +397,36 @@ public class MapController {
public List<MapSectionNewVO> querySectionsUnderMap(@PathVariable Long id) {
return iMapService.querySectionsUnderMap(id);
}
/**
* 查询地图下所有列车
*/
@GetMapping("/{id}/trains")
public List<MapTrainVO> queryTrains(@PathVariable long id) {
return iMapService.queryTrains(id);
}
/**
* 查询地图成员Map
*/
@GetMapping("/{id}/memberMap")
public Map<Simulation.Type, List<MapMemberVO>> queryMemberMap(@PathVariable long id) {
return iMapService.queryMemberMap(id);
}
/**
* 获取地图下所有车站
*/
@GetMapping("/{id}/stations")
public List<MapStationNewVO> getMapStations(@PathVariable long id) {
return iMapService.getMapStations(id);
}
/**
* 查询与登录用户有关的在线地图列表
*/
@GetMapping("/list/online/ofUser")
public List<MapVO> listMapsOfUser(@RequestAttribute LoginUserInfoVO loginInfo) {
return iMapService.listMapsOfUser(loginInfo);
}
}

View File

@ -0,0 +1,153 @@
package club.joylink.rtss.controller.publish;
import club.joylink.rtss.constants.RoleEnum;
import club.joylink.rtss.controller.advice.Role;
import club.joylink.rtss.dao.RtsMapFunctionDAO;
import club.joylink.rtss.services.IMapService;
import club.joylink.rtss.services.mapFunction.RtsMapFunctionService;
import club.joylink.rtss.simulation.cbtc.Simulation;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.LoginUserInfoVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.client.mapFunction.*;
import club.joylink.rtss.vo.map.MapVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 地图功能管理接口
*/
@RestController
@RequestMapping("/api/mapFunction")
public class MapFunctionController {
@Autowired
private RtsMapFunctionService rtsMapFunctionService;
/**
* 创建地图功能
*/
@Role(RoleEnum.Admin)
@PostMapping("")
public void create(@RequestBody RtsMapFunctionCreateVO createVO, @RequestAttribute LoginUserInfoVO loginInfo) {
rtsMapFunctionService.create(createVO, loginInfo.getAccountVO().getId());
}
/**
* 生成地图功能
*/
@Role(RoleEnum.Admin)
@PostMapping("/{mapId}/generate")
public List<String> generate(@PathVariable long mapId, @RequestBody @Validated RtsMapFunctionGenerateParamVO paramVO,
@RequestAttribute LoginUserInfoVO loginInfo) {
return rtsMapFunctionService.generate(mapId, paramVO, loginInfo.getAccountVO().getId());
}
/**
* 列表查询地图功能
*/
@GetMapping("/list")
public List<RtsMapFunctionVO> listQuery(RtsMapFunctionQueryVO queryVO) {
return rtsMapFunctionService.listQuery(queryVO);
}
/**
* 分页查询地图功能
*/
@GetMapping("/paged")
public PageVO<RtsMapFunctionVO> pagedQuery(RtsMapFunctionQueryVO queryVO) {
return rtsMapFunctionService.pagedQuery(queryVO);
}
/**
* 删除地图功能
*/
@Role(RoleEnum.Admin)
@DeleteMapping("/{id}")
public void delete(@PathVariable long id) {
rtsMapFunctionService.delete(id);
}
/**
* 批量删除地图功能
*/
@Role(RoleEnum.Admin)
@DeleteMapping("/batch/{mapId}")
public void batchDelete(@PathVariable long mapId) {
rtsMapFunctionService.batchDelete(mapId);
}
/**
* 更新地图功能
*/
@Role(RoleEnum.Admin)
@PutMapping("/{id}")
public void update(@PathVariable long id, @RequestBody RtsMapFunctionUpdateVO updateVO, @RequestAttribute LoginUserInfoVO loginInfo) {
rtsMapFunctionService.update(id, updateVO, loginInfo.getAccountVO().getId());
}
/**
* 根据ID获取地图功能信息
*/
@GetMapping("/{id}")
public RtsMapFunctionVO queryOne(@PathVariable Long id) {
return rtsMapFunctionService.get(id);
}
/**
* 更新分组
* @param groupMap k- group v-mapFunctionIds
*/
@PutMapping("/group")
public void updateGroup(@RequestBody Map<String, List<Long>> groupMap,
@RequestAttribute AccountVO user) {
rtsMapFunctionService.updateGroup(groupMap, user.getId());
}
@Autowired
private IMapService iMapService;
@Autowired
private RtsMapFunctionDAO rtsMapFunctionDAO;
/**
* 旧数据处理用完删除
*/
@Transactional(rollbackFor = Exception.class)
@PostMapping("/oldDataHandle")
public List<String> oldDataHandle() {
rtsMapFunctionDAO.deleteByExample(null);
List<MapVO> onlineMaps = iMapService.listOnline();
List<String> msgList = new ArrayList<>();
for (MapVO onlineMap : onlineMaps) {
List<String> list = rtsMapFunctionService.transferOldData(onlineMap.getId());
msgList.addAll(list);
}
return msgList;
}
/**
* 为所有在线地图生成功能用完删除
*/
@Transactional
@PostMapping("/generate/all")
public void generateAll(@RequestAttribute LoginUserInfoVO loginInfo) {
for (MapVO mapVO : iMapService.listOnline()) {
MapVO mapDetail = iMapService.getMapDetail(mapVO.getId());
RtsMapFunctionGenerateParamVO paramVO = new RtsMapFunctionGenerateParamVO();
List<Simulation.Type> types = new ArrayList<>();
if (mapDetail.getConfigVO().isRailway()) {
types.add(Simulation.Type.RAILWAY);
} else {
types.add(Simulation.Type.METRO);
}
paramVO.setSimTypes(types);
generate(mapDetail.getId(), paramVO, loginInfo);
}
}
}

View File

@ -0,0 +1,100 @@
package club.joylink.rtss.controller.simulation;
import club.joylink.rtss.controller.advice.AuthenticateInterceptor;
import club.joylink.rtss.services.training2.Training2Service;
import club.joylink.rtss.simulation.cbtc.script.ScriptBO;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.LoginUserInfoVO;
import club.joylink.rtss.vo.client.training2.ScoringRuleVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 第二版实训应用接口
*/
@RestController
@RequestMapping("/api/training2Simulation")
public class SimulationTrainingV2Controller {
@Autowired
private Training2Service training2Service;
/**
* 在仿真中演练发布的实训
*/
@PostMapping("/{group}/load/{trainingId}")
public void trainingLoad(@PathVariable String group, @PathVariable Long trainingId
, @RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO loginUserInfoVO) {
training2Service.trainingLoad(group, trainingId, loginUserInfoVO);
}
/**
* 在仿真中演练草稿实训
*/
@PostMapping("/{group}/load/draft/{trainingId}")
public void trainingDraftLoad(@PathVariable String group, @PathVariable Long trainingId
, @RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO loginUserInfoVO) {
training2Service.trainingDraftLoad(group, trainingId, loginUserInfoVO);
}
/**
* 预览实训信息
*/
@GetMapping("/preview/draft/{trainingId}")
public String previewDraft(@PathVariable Long trainingId
, @RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO loginUserInfoVO) {
return training2Service.previewDraft(trainingId, loginUserInfoVO);
}
/**
* 预览实训信息
*/
@GetMapping("/preview/{trainingId}")
public String preview(@PathVariable Long trainingId
, @RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO loginUserInfoVO) {
return training2Service.preview(trainingId, loginUserInfoVO);
}
/**
* 预览实训信息
*/
@PutMapping("/{group}/start")
public void startTraining2(@PathVariable String group, ScriptBO.Mode mode, @RequestAttribute AccountVO user) {
training2Service.startTraining2(group, mode, user);
}
/**
* 结束实训
*/
@PutMapping("/{group}/finish")
public Float finishTraining2(@PathVariable String group, @RequestAttribute AccountVO user, @RequestBody List<ScoringRuleVO.DetailVO> scoreList) {
return training2Service.finishTraining2(group, user, scoreList);
}
/**
* 客户端步骤完成后操作回调
*/
@PutMapping("/{group}/completion/step/{stepId}")
public Integer completionClientStep(@PathVariable String group, @PathVariable Long stepId, @RequestAttribute AccountVO user) {
return training2Service.completionClientStep(group, stepId, user);
}
/**
* 客户端步骤完成后操作回调
*/
@PutMapping("/{group}/completion/step/{stepId}/operation/{id}")
public Integer completionClientStepOperation(@PathVariable String group, @PathVariable Integer stepId
, @PathVariable Integer id, @RequestAttribute AccountVO user) {
return training2Service.completionClientStepOperation(group, stepId, id, user);
}
/**
* 绘制剧本
*/
@PostMapping("/{group}/draw/{trainingId}")
public void drawTraining(@PathVariable String group, @PathVariable Long trainingId) {
training2Service.drawTraining(group, trainingId);
}
}

View File

@ -5,10 +5,12 @@ import club.joylink.rtss.exception.BusinessExceptionAssertEnum;
import club.joylink.rtss.services.IVirtualRealityIbpService;
import club.joylink.rtss.services.psl.IVirtualRealityPslService;
import club.joylink.rtss.services.simulation.SimulationSupportService;
import club.joylink.rtss.simulation.SimulationManager;
import club.joylink.rtss.simulation.cbtc.ATS.data.AtsAlarm;
import club.joylink.rtss.simulation.cbtc.ATS.data.SimulationLog;
import club.joylink.rtss.simulation.cbtc.GroupSimulationService;
import club.joylink.rtss.simulation.cbtc.Simulation;
import club.joylink.rtss.simulation.cbtc.SimulationService;
import club.joylink.rtss.simulation.cbtc.command.CommandInitiateVO;
import club.joylink.rtss.simulation.cbtc.communication.vo.fault.DeviceFaultInfo;
import club.joylink.rtss.simulation.cbtc.data.status.IbpStatus;
@ -16,6 +18,8 @@ import club.joylink.rtss.simulation.cbtc.data.vo.SimulationVO;
import club.joylink.rtss.simulation.cbtc.data.vr.VirtualRealityPsl;
import club.joylink.rtss.simulation.cbtc.member.SimulationMember;
import club.joylink.rtss.simulation.cbtc.script.ScriptBO;
import club.joylink.rtss.simulation.cbtc.vo.SimulationWorkParamVO;
import club.joylink.rtss.simulation.vo.SimulationInfoVO;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.LoginUserInfoVO;
import club.joylink.rtss.vo.client.PageVO;
@ -28,14 +32,12 @@ import club.joylink.rtss.vo.client.operation.DriveParamVO;
import club.joylink.rtss.vo.client.psl.PslStatus;
import club.joylink.rtss.vo.client.runplan.PlanTripNumberVO;
import club.joylink.rtss.vo.client.runplan.RunPlanEChartsDataVO;
import club.joylink.rtss.vo.client.simulationv1.RunAsPlanParam;
import club.joylink.rtss.vo.client.simulationv1.SimulationLogPagedQueryVO;
import club.joylink.rtss.vo.client.simulationv1.SimulationMemberVO;
import club.joylink.rtss.vo.client.simulationv1.SimulationUserVO;
import club.joylink.rtss.vo.client.simulationv1.*;
import club.joylink.rtss.vo.map.MapVO;
import club.joylink.rtss.vo.map.graph.MapStationNewVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -43,10 +45,9 @@ import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* 新仿真接口
@ -66,6 +67,10 @@ public class SimulationV1Controller {
@Autowired
private IVirtualRealityPslService iVirtualRealityPslService;
@Autowired
private SimulationService simulationService;
@Autowired
private SimulationManager simulationManager;
/**
* 根据产品类型创建仿真
@ -73,7 +78,7 @@ public class SimulationV1Controller {
@GetMapping("")
public String simulation(Long mapId, String prdType,
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY)
LoginUserInfoVO loginUserInfoVO) {
LoginUserInfoVO loginUserInfoVO) {
String simulation = this.groupSimulationService.simulation(mapId, prdType, loginUserInfoVO);
return simulation;
}
@ -84,7 +89,7 @@ public class SimulationV1Controller {
@GetMapping(path = "/training/{trainingId}")
public String trainingSimulation(@PathVariable Long trainingId,
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY)
LoginUserInfoVO loginUserInfoVO) {
LoginUserInfoVO loginUserInfoVO) {
return this.groupSimulationService.trainingSimulation(trainingId, loginUserInfoVO);
}
@ -94,7 +99,7 @@ public class SimulationV1Controller {
@GetMapping(path = "/exam/{examId}")
public String examSimulate(@PathVariable Long examId,
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY)
LoginUserInfoVO loginUserInfoVO) {
LoginUserInfoVO loginUserInfoVO) {
return this.groupSimulationService.examSimulation(examId, loginUserInfoVO);
}
@ -120,7 +125,7 @@ public class SimulationV1Controller {
@GetMapping("/{group}/simulationUser")
public SimulationUserVO getSimulationUserInfo(@PathVariable String group,
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO) {
AccountVO accountVO) {
return this.groupSimulationService.getSimulationUserInfo(group, accountVO);
}
@ -202,6 +207,9 @@ public class SimulationV1Controller {
@PostMapping("/{group}/operate/{type}")
public Object operate(@PathVariable @NotBlank String group, @PathVariable @NotNull String type,
@RequestBody(required = false) Map<String, Object> param, @RequestAttribute AccountVO user) {
if (null == param) {
param = new HashMap<>();
}
return this.groupSimulationService.operate(group, type, param, user);
}
@ -249,12 +257,29 @@ public class SimulationV1Controller {
this.groupSimulationService.planOver(group);
}
// /**
// * 清除仿真
// */
// @DeleteMapping("/{group}/clear")
// public void clearSimulation(@PathVariable String group, @RequestAttribute AccountVO user) {
// this.groupSimulationService.clearSimulation(group, user);
// }
/**
* 清除仿真
* 退出仿真主要是非房主用户退出综合演练用
*/
@DeleteMapping("/{group}/clear")
public void clearSimulation(@PathVariable String group, @RequestAttribute AccountVO user) {
this.groupSimulationService.clearSimulation(group, user);
@PutMapping("/{simulationId}/exit")
public void exitSimulation(@PathVariable String simulationId, @RequestAttribute AccountVO user) {
this.groupSimulationService.exitSimulation(simulationId, user);
}
/**
* 销毁仿真
* 由系统管理员或老师在仿真监管功能中使用
*/
@DeleteMapping("/{simulationId}/destroy")
public void destroySimulation(@PathVariable String simulationId) {
this.groupSimulationService.clearSimulation(simulationId);
}
/**
@ -285,21 +310,21 @@ public class SimulationV1Controller {
return this.groupSimulationService.getSimulationMembers(group);
}
/**
* 仿真暂停
*/
@PutMapping(path = "/{group}/pause")
public void pause(@PathVariable String group) {
groupSimulationService.pauseSimulation(group);
}
// /**
// * 仿真暂停
// */
// @PutMapping(path = "/{group}/pause")
// public void pause(@PathVariable String group) {
// groupSimulationService.pauseSimulation(group);
// }
/**
* 仿真恢复运行
*/
@PutMapping(path = "/{group}/resume")
public void resume(@PathVariable String group) {
groupSimulationService.resumeSimulation(group);
}
// /**
// * 仿真恢复运行
// */
// @PutMapping(path = "/{group}/resume")
// public void resume(@PathVariable String group) {
// groupSimulationService.resumeSimulation(group);
// }
/**
* 获取仿真设备故障列表
@ -473,4 +498,137 @@ public class SimulationV1Controller {
public List<TimedPlayParamVO> getPaTimedPlay(@PathVariable String group, String stationCode) {
return groupSimulationService.getAllPaTimedPlayInfo(group, stationCode);
}
/* ----------------------- 仿真新接口 ----------------------- */
/**
* 仿真创建接口
*/
@PostMapping("/new/{mapId}")
public String createSimulation(@PathVariable long mapId, @RequestBody @Validated SimulationWorkParamVO paramVO,
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY)
LoginUserInfoVO loginUserInfoVO) {
return simulationService.createSimulation(mapId, null, paramVO, loginUserInfoVO);
}
/**
* 根据地图功能id创建仿真
*/
@PostMapping("/new/mapFunction/{mapFunctionId}")
public String createSimulationByMapFunction(@PathVariable long mapFunctionId, @RequestAttribute LoginUserInfoVO loginInfo) {
return simulationService.createSimulation(mapFunctionId, loginInfo);
}
/**
* 按计划行车
*/
@PostMapping("/new/{simulationId}/runAsPlan")
public void runAsPlanNew(@PathVariable String simulationId, @RequestBody @Validated RunAsPlanParam param) {
simulationService.runAsPlan(simulationId, param);
}
/**
* 重置仿真
*/
@PutMapping("/new/{simulationId}/reset")
public void reset(@PathVariable String simulationId) {
simulationService.reset(simulationId);
}
/**
* 根据地图和功能ID获取仿真GroupId
*
* @return 仿真GroupId
*/
@GetMapping("/new/map/{mapId}/function/{functionId}")
public String querySimulationByMapIdAndMapFunction(@PathVariable("mapId") long mapId
, @PathVariable("functionId") long mapFunctionId) {
return simulationService.querySimulationByMapIdAndMapFunction(mapId, mapFunctionId);
}
/**
* 监管仿真
*/
@GetMapping("/supervise")
public List<SimulationInfoVO> superviseSimulation(@RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO loginUserInfoVO, SimulationInfoQueryVO queryVO) {
List<Simulation> simulationList = this.simulationManager.getSimulationList();
Stream<Simulation> stream = simulationList.stream();
stream = stream.filter(simulation -> simulation instanceof club.joylink.rtss.simulation.cbtc.Simulation
&& Objects.equals(loginUserInfoVO.getTopOrgId(), ((club.joylink.rtss.simulation.cbtc.Simulation) simulation).getBuildParams().getLoginUserInfo().getTopOrgId()));
if (StringUtils.hasText(queryVO.getGroup())) {
stream = stream.filter(simulation -> simulation.getId().contains(queryVO.getGroup()));
}
if (StringUtils.hasText(queryVO.getUserName())) {
stream = stream.filter(simulation -> simulation.getSimulationUsers().stream().anyMatch(user -> user.getName().contains(queryVO.getUserName())));
}
if (StringUtils.hasText(queryVO.getPrdType())) {
stream = stream.filter(simulation -> simulation instanceof club.joylink.rtss.simulation.cbtc.Simulation
&& queryVO.getPrdType().equals(simulation.getBuildParams().getProdType().getCode()));
}
return stream.map(Simulation::convertToVO).collect(Collectors.toList());
}
/**
* 获取所有存在的仿真
*/
@GetMapping("/list")
public List<SimulationInfoVO> queryInfo(SimulationInfoQueryVO queryVO) {
List<Simulation> simulationList = this.simulationManager.getSimulationList();
Stream<Simulation> stream = simulationList.stream();
if (StringUtils.hasText(queryVO.getGroup())) {
stream = stream.filter(simulation -> simulation.getId().contains(queryVO.getGroup()));
}
if (StringUtils.hasText(queryVO.getUserName())) {
stream = stream.filter(simulation -> simulation.getSimulationUsers().stream().anyMatch(user -> user.getName().contains(queryVO.getUserName())));
}
if (StringUtils.hasText(queryVO.getPrdType())) {
stream = stream.filter(simulation -> simulation instanceof club.joylink.rtss.simulation.cbtc.Simulation
&& queryVO.getPrdType().equals(simulation.getBuildParams().getProdType().getCode()));
}
return stream.map(Simulation::convertToVO).collect(Collectors.toList());
}
/**
* 暂停
*/
@PutMapping("/{id}/pause")
public void pause(@PathVariable String id) {
this.simulationManager.pause(id);
}
/**
* 开始
*/
@PutMapping("/{id}/start")
public void start(@PathVariable String id) {
this.simulationManager.start(id);
}
/**
* 调整倍速
*/
@PutMapping("/{id}/updateSpeed/{speed}")
public void updateSpeed(@PathVariable String id, @PathVariable int speed) {
this.simulationManager.updateSpeed(id, speed);
}
/**
* 获取仿真中所有仿真用户
*/
@GetMapping("/{id}/users")
public List<club.joylink.rtss.simulation.vo.SimulationUserVO> getSimulationUsers(@PathVariable String id) {
return this.simulationManager.getSimulationUsers(id).stream()
.map(club.joylink.rtss.simulation.SimulationUser::convertToVO)
.collect(Collectors.toList());
}
/**
* 监控仿真
*/
@PostMapping("/{simulationId}/monitor")
public void monitor(@PathVariable String simulationId, @RequestAttribute AccountVO user) {
simulationService.monitor(simulationId, user);
}
}

View File

@ -1,14 +1,17 @@
package club.joylink.rtss.controller.test;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import club.joylink.rtss.services.voice.VoiceService;
import club.joylink.rtss.vo.client.voice.BaseVoiceSynthesisVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/test")
public class TestController {
@Autowired
private VoiceService voiceService;
@PostMapping("/thirdsync/usr")
public void thirdSyncSimulationRecord(@RequestBody String json) {
System.out.println(json);
@ -19,4 +22,10 @@ public class TestController {
System.out.println(json);
}
@PostMapping("synthesis")
public void testSynthesis(@RequestParam("msg") String msg){
BaseVoiceSynthesisVO vo = new BaseVoiceSynthesisVO(msg);
vo.setDefaultParam(true);
this.voiceService.synthesis(vo);
}
}

View File

@ -0,0 +1,56 @@
package club.joylink.rtss.controller.training2;
import club.joylink.rtss.services.training2.Training2DraftProgressService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.training2.draft.DraftTraining2ProgressVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* 实训草稿存档功能
*/
@Slf4j
@RestController
@RequestMapping("/api/v2/draft/training/{trainingId}/progress")
public class TrainingDraftProgressController {
@Autowired
private Training2DraftProgressService training2DraftProgressService;
/**
* 存档
*/
@PostMapping("{group}/save")
public void saveProgress(@RequestBody DraftTraining2ProgressVo progressVo
,@PathVariable Long trainingId, @PathVariable String group, @RequestAttribute AccountVO user){
training2DraftProgressService.saveProgress(progressVo, trainingId, group, user);
}
/**
* 读档
*/
@PostMapping("{group}/read/{id}")
public DraftTraining2ProgressVo readProgress(@PathVariable String group, @PathVariable Long trainingId, @PathVariable Long id){
return training2DraftProgressService.readProgress(id, trainingId, group);
}
@GetMapping("/list")
public PageVO<DraftTraining2ProgressVo> queryProgressList(@PathVariable Long trainingId, PageVO<DraftTraining2ProgressVo> pageVO){
return training2DraftProgressService.queryProgressList(trainingId, pageVO);
}
@DeleteMapping("/delete/{id}")
public void deleteProgress(@PathVariable Long trainingId,@PathVariable Long id){
training2DraftProgressService.deleteProgressById(trainingId, id);
}
@DeleteMapping("/deleteAll")
public void deleteAllProgress(@PathVariable Long trainingId){
training2DraftProgressService.deleteAllProgress(trainingId);
}
}

View File

@ -0,0 +1,177 @@
package club.joylink.rtss.controller.training2;
import club.joylink.rtss.services.training2.Training2DraftService;
import club.joylink.rtss.simulation.cbtc.training2.ecm.collector.ExpConditionMaterialCollector;
import club.joylink.rtss.simulation.cbtc.training2.ecm.vo.ExpConditionMaterialSrcVo;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.client.simulationv1.SimulationMemberVO;
import club.joylink.rtss.vo.client.training2.ScoringRuleVO;
import club.joylink.rtss.vo.client.training2.Step2VO;
import club.joylink.rtss.vo.training2.draft.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* 实训草稿管理接口
*/
@Slf4j
@RestController
@RequestMapping("/api/v2/draft/training")
public class TrainingDraftV2Controller {
@Autowired
private Training2DraftService training2DraftService;
@Autowired
private ExpConditionMaterialCollector collector;
/**
* 创建实训草稿
*/
@PostMapping("/create")
public CreateTraining2RspVo create(@RequestBody CreateTraining2ReqVo req, @RequestAttribute AccountVO user) {
log.debug("==>>创建实训草稿: mapId = {} , name = {} type = {} des = {}", req.getMapId(), req.getName(), req.getType(), req.getDescription());
return this.training2DraftService.createTraining(req, user);
}
/**
* 删除当前用户的实训草稿
*/
@DeleteMapping
public DeleteTraining2RspVo deleteTrainings(@RequestBody DeleteTraining2ReqVo req, @RequestAttribute AccountVO user) {
return this.training2DraftService.deleteTrainings(req, user);
}
/**
* 分页获取当前用户实训草稿基础信息
*/
@PostMapping("/info/page")
public PageVO<DraftTraining2InfoVo> findTrainingsInfoByPage(@RequestBody DraftTraining2InfoPageReqVo req, @RequestAttribute AccountVO user) {
return this.training2DraftService.findTrainingsInfoByPage(req, user.getId());
}
/**
* 更新当前用户的某个实训草稿(大字段信息)
*/
@PostMapping("/update/content")
public void updateTraining(@RequestBody UpdateDraftTraining2BlobReqVo req, @RequestAttribute AccountVO user) {
this.training2DraftService.updateTrainingBlob(req, user.getId());
}
/**
* 单独更新当前用户的某个实训草稿的初始背景
* <p>
* 背景内容由后端自己生成
*/
@PostMapping("/update/content/background")
public void updateTrainingBackground(@RequestBody UpdateTraining2BackgroudReqVo req, @RequestAttribute AccountVO user) {
this.training2DraftService.updateTrainingBackground(req, user.getId());
}
/**
* 单独重置当前用户的某个实训草稿的初始背景
*/
@PostMapping("/reset/content/background")
public void resetTrainingBackground(@RequestBody ResetTraining2BackgroudReqVo req, @RequestAttribute AccountVO user) {
this.training2DraftService.resetTrainingBackground(req, user.getId());
}
/**
* 重置当前用户的某个实训草稿的内容
*/
@DeleteMapping("{groupId}/reset/{trainingId}")
public void resetTraining(@PathVariable("groupId") String groupId, @PathVariable("trainingId") Long trainingId, @RequestAttribute AccountVO user) {
this.training2DraftService.resetTraining(groupId, trainingId, user.getId());
}
/**
* 更新当前用户实训草稿定位
*/
@PostMapping("/update/content/maplocation")
public void updateTrainingMapLocation(@RequestBody UpdateTraining2MapLocationReqVo req, @RequestAttribute AccountVO user) {
this.training2DraftService.updateTrainingMapLocation(req, user.getId());
}
/**
* 获取实训表达式条件素材
*/
@GetMapping("/expression/materials")
public List<ExpConditionMaterialSrcVo> findTrainingExpressionMaterials() {
return collector.doCollect();
}
/**
* 更新当前用户的某个实训草稿的基础信息
*/
@PostMapping("/update/info")
public void updateTrainingInfo(@RequestBody UpdateDraftTraining2InfoReqVo req, @RequestAttribute AccountVO user) {
this.training2DraftService.updateTrainingInfo(req, user.getId());
}
/**
* 获取当前用户的某个实训草稿的所有信息
*/
@GetMapping("/all/{trainingId}")
public DraftTraining2DetailRspVo findTrainingDetail(@NotNull(message = "实训草稿id不能为空") @PathVariable("trainingId") Long trainingDraftId, @RequestAttribute AccountVO user) {
return this.training2DraftService.findTrainingDetail(trainingDraftId, user.getId());
}
/**
* 查询步骤列表
*/
@GetMapping("/{trainingId}/step/list")
public List<Step2VO> stepList(@PathVariable("trainingId") Long trainingId) {
return training2DraftService.stepList(trainingId);
}
/**
* 修改实训所有步骤
*/
@PutMapping("/{group}/{trainingId}/step/update")
public void updateSteps(@PathVariable("group") String group, @PathVariable("trainingId") Long trainingId
, @RequestBody List<Step2VO> step2VOList) {
training2DraftService.updateSteps(group, trainingId, step2VOList);
}
/**
* 清空步骤
*/
@DeleteMapping("/{trainingId}/step/clear")
public void clearStep(@PathVariable("trainingId") Long trainingId) {
training2DraftService.clearStep(trainingId);
}
/**
* 获取所有评分规则
*/
@GetMapping("/{trainingId}/scoringRule/list")
public List<ScoringRuleVO> getScoringRuleVOS(@PathVariable Long trainingId) {
return training2DraftService.getScoringRules(trainingId);
}
/**
* 更新所有评分规则
*/
@PutMapping("/{trainingId}/scoringRule/list")
public void updateScoringRules(@PathVariable Long trainingId, @RequestBody List<ScoringRuleVO> scoringRuleVOS) {
training2DraftService.updateScoringRules(trainingId, scoringRuleVOS);
}
/**
* 获取实训所有成员
*/
@GetMapping("/{trainingId}/member/list")
public List<SimulationMemberVO> getMembers(@PathVariable Long trainingId) {
return training2DraftService.getMembers(trainingId);
}
/**
* 获取实训所有参与者
*/
@GetMapping("/{trainingId}/player/list")
public List<SimulationMemberVO> getPlayers(@PathVariable Long trainingId) {
return training2DraftService.getPlayers(trainingId);
}
}

View File

@ -0,0 +1,29 @@
package club.joylink.rtss.controller.training2;
import club.joylink.rtss.services.training2.Training2DraftPublishService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.LoginUserInfoVO;
import club.joylink.rtss.vo.training2.draft.TrainingDraftPublishReqVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import static club.joylink.rtss.controller.advice.AuthenticateInterceptor.LOGIN_INFO_KEY;
/**
* 实训草稿发布管理接口
*/
@Slf4j
@RestController
@RequestMapping("/api/v2/draft/training/publish")
public class TrainingDraftV2PublishController {
@Autowired
private Training2DraftPublishService publishService;
/**
* 当前用户发布自己的实训草稿
*/
@PostMapping
public void draftPublish(@RequestBody TrainingDraftPublishReqVo req, @RequestAttribute(name = LOGIN_INFO_KEY)LoginUserInfoVO userInfo){
this.publishService.draftPublish(req,userInfo.getAccountVO().getId(),userInfo.getTopOrgId());
}
}

View File

@ -0,0 +1,85 @@
package club.joylink.rtss.controller.training2;
import club.joylink.rtss.controller.advice.AuthenticateInterceptor;
import club.joylink.rtss.services.training2.Training2RuleService;
import club.joylink.rtss.vo.LoginUserInfoVO;
import lombok.extern.slf4j.Slf4j;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
*
*/
@Slf4j
@RestController
@RequestMapping("/api/v2/training/rule")
public class TrainingRuleController {
@Autowired
private Training2RuleService training2RuleService;
/**
* 根据仿真生成
*/
@PostMapping("{groupId}/generate")
public List<String> generateTraining(@PathVariable String groupId){
return training2RuleService.generateTrainingByRule(groupId);
}
/**
* 根据地图与功能生成
*/
@PostMapping("{mapId}/function/{functionId}")
public List<String> generateTrainingByMapIdAndFunId(@PathVariable Long mapId, @PathVariable Long functionId) {
return training2RuleService.generateTrainingByMapIdAndFunId(mapId, functionId);
}
/**
* 生成所有地图实训
*/
@PostMapping("generate/all")
public List<String> generateAllTraining(@RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO loginUserInfoVO){
return training2RuleService.generateAllTrainingByRule(loginUserInfoVO);
}
/**
* 根据地图ID生成实训
*/
@PostMapping("generate/mapId")
public List<String> generateTrainingByMapId(@RequestBody List<Long> mapIdList
, @RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO loginUserInfoVO){
return training2RuleService.generateTrainingByMapId(mapIdList, loginUserInfoVO);
}
/**
* 根据线路编号生成实训
*/
@PostMapping("generate/lineCode")
public List<String> generateTrainingByLineCode(@RequestBody List<String> lineCodeList
, @RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO loginUserInfoVO) {
return training2RuleService.generateTrainingByLineCode(lineCodeList, loginUserInfoVO);
}
/**
* 根据规则ID生成实训
*/
@PostMapping("generate/ruleId")
public List<String> generateTrainingByRuleId(@RequestBody List<Long> ruleIdList
, @RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO loginUserInfoVO) {
return training2RuleService.generateTrainingByRuleId(ruleIdList, loginUserInfoVO);
}
/**
* 根据地图ID和指定规则ID生成实训
*/
@PostMapping("generate/mapId/ruleIds")
public List<String> generateTrainingByMapIdAndRuleId(@RequestBody Map<Long, List<Long>> mapRuleIdMap
, @RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO loginUserInfoVO){
return training2RuleService.generateTrainingByMapIdAndRuleId(mapRuleIdMap, loginUserInfoVO);
}
}

View File

@ -0,0 +1,35 @@
package club.joylink.rtss.controller.training2;
import club.joylink.rtss.services.training2.Training2TraceService;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.training2.trace.TraceTraining2PageReqVo;
import club.joylink.rtss.vo.training2.trace.TraceTraining2RspVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 实训 草稿-发布 轨迹 服务接口
*/
@Slf4j
@RestController
@RequestMapping("/api/v2/training/draft/pub/trace")
public class TrainingTraceV2Controller {
@Autowired
private Training2TraceService training2TraceService;
/**
* 分页查询实现草稿发布轨迹
*/
@PostMapping("/find/page")
public PageVO<TraceTraining2RspVo> findTraceByPage(@RequestBody TraceTraining2PageReqVo req){
return this.training2TraceService.findTraceByPage(req);
}
/**
* 根据id删除
*/
@DeleteMapping
public void deleteTrace(@RequestBody List<String> traceIdList){
this.training2TraceService.deleteTrace(traceIdList);
}
}

View File

@ -0,0 +1,92 @@
package club.joylink.rtss.controller.training2;
import club.joylink.rtss.constants.RoleEnum;
import club.joylink.rtss.controller.advice.Role;
import club.joylink.rtss.services.training2.Training2PublishService;
import club.joylink.rtss.services.training2.Training2TypeEnum;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.training2.publish.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 已发布实训管理接口
*/
@Slf4j
@RestController
@RequestMapping("/api/v2/training/published")
public class TrainingV2PublishController {
@Autowired
private Training2PublishService publishService;
/**
* 已发布实训分页列表
*/
@PostMapping("/page")
public PageVO<PublishedTraining2InfoRspVo> publishedTrainingsPage(@RequestBody PublishedTraining2InfoPageReqVo req){
return this.publishService.publishedTrainingsPage(req);
}
/**
* 已发布实训上架
*/
@PostMapping("/put/on")
public PutOnPublishedTraining2RspVo putOnPublishedTrainings(@RequestBody PutOnPublishedTraining2ReqVo req){
return this.publishService.putOnPublishedTrainings(req);
}
/**
* 已发布实训下架
*/
@PostMapping("/pull/off")
public PullOffPublishedTraining2RspVo pullOffPublishedTrainings(@RequestBody PullOffPublishedTraining2ReqVo req){
return this.publishService.pullOffPublishedTrainings(req);
}
/**
* 删除已发布实训
*/
@DeleteMapping
public DeletePublishedTraining2RspVo deletePublishedTrainings(@RequestBody DeletePublishedTraining2ReqVo req){
return this.publishService.deletePublishedTrainings(req);
}
/**
* 实训查询用户管理
* @param vo
* @return
*/
@PostMapping("/manage/infos")
public PageVO<PublishedTraining2InfoRspVo> findTrainingListManageInfosForPage(@RequestBody PublishedTrainingListRspVo vo){
return this.publishService.findTrainingInfoForPage(vo);
}
/**
* 实训查询
* @param vo
* @return
*/
@PostMapping("/infos")
public List<PublishedTraining2InfoRspVo> findTrainingListInfos(@RequestBody PublishedTrainingListRspVo vo){
//只查询以上架
vo.setState(1);
return this.publishService.findTrainingInfo(vo);
}
/**
* 查所有的已发布场景实训的基础信息
*/
@Role(value = RoleEnum.SuperAdmin)
@GetMapping("/list")
public PageVO<PublishedTraining2InfoRspVo> findTrainingList(@ModelAttribute PublishedTrainingListRspVo vo){
return this.publishService.findTrainingInfoForPage(vo);
}
/**
* 根据实训id查该已发布实训的所有信息
*/
@GetMapping("/{trainingId}")
public PublishedTraining2DetailRspVo findTrainingAllInfo(@PathVariable("trainingId") Long trainingId){
return this.publishService.findTrainingAllInfoById(trainingId);
}
}

View File

@ -6,6 +6,7 @@ import club.joylink.rtss.vo.UserQueryVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.client.user.*;
import club.joylink.rtss.vo.user.AccountCreateVO;
import club.joylink.rtss.vo.user.AccountRegisterVO;
import club.joylink.rtss.vo.user.UserRegisterCheck;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
@ -14,11 +15,11 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
*用户信息接口
* 系统账户接口
*/
@RestController
@RequestMapping("/api/userinfo")
public class UserInfoController {
public class SysAccountController {
@Autowired
private ISysUserService iSysUserService;
@ -28,6 +29,14 @@ public class UserInfoController {
this.iSysUserService.register(accountCreateVO);
}
/**
* 新注册接口
*/
@PostMapping("/register2")
public void register2(@RequestBody @Validated AccountRegisterVO registerVO) {
this.iSysUserService.register2(registerVO);
}
/**
*根据姓名或电话号查询用户
*/
@ -37,6 +46,22 @@ public class UserInfoController {
return list;
}
/**
* 手机号是否已经注册
*/
@GetMapping("/isExist/mobile")
public boolean isMobileExist(String mobile) {
return iSysUserService.isSameMobileExist(mobile);
}
/**
* 邮箱是否已经注册
*/
@GetMapping("/isExist/email")
public boolean isEmailExist(String email) {
return iSysUserService.isSameEmailExist(email);
}
/**
*根据用户id获取用户信息
*/

View File

@ -1,12 +1,16 @@
package club.joylink.rtss.controller.user;
import club.joylink.rtss.services.thridAccount.ThirdAccountConfigService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.client.PageQueryVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.thirdAccount.ThirdAccountConfigVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* 第三方配置接口
*/
@RestController
@RequestMapping("/api/thirdAccountConfig")
public class ThirdAccountConfigController {
@ -14,9 +18,27 @@ public class ThirdAccountConfigController {
@Autowired
private ThirdAccountConfigService thirdAccountConfigService;
/**
* 分页查询所有配置
*/
@GetMapping("/paged")
public PageVO<ThirdAccountConfigVO> pagedQuery(PageQueryVO queryVO) {
return this.thirdAccountConfigService.pagedQuery(queryVO);
}
/**
* 新增或更新
*/
@PostMapping("")
public void saveOrUpdate(@RequestBody @Validated ThirdAccountConfigVO configVO, @RequestAttribute AccountVO user) {
public void saveOrUpdate(@RequestBody @Validated ThirdAccountConfigVO configVO) {
this.thirdAccountConfigService.saveOrUpdateConfig(configVO);
}
/**
* 删除
*/
@DeleteMapping("/{id}")
public void delete(@PathVariable long id) {
this.thirdAccountConfigService.delete(id);
}
}

View File

@ -4,7 +4,9 @@ import club.joylink.rtss.constants.RoleEnum;
import club.joylink.rtss.controller.advice.Role;
import club.joylink.rtss.services.ISysUserService;
import club.joylink.rtss.services.local.UserGenerateService;
import club.joylink.rtss.services.permission.OldPermissionDataSyncService;
import club.joylink.rtss.services.student.IDepartUserStatisticService;
import club.joylink.rtss.util.VoiceFileUtils;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.LoginUserInfoVO;
import club.joylink.rtss.vo.UserQueryVO;
@ -15,12 +17,18 @@ import club.joylink.rtss.vo.client.user.WeChatBindStatusVO;
import club.joylink.rtss.vo.user.AccountCreateVO;
import club.joylink.rtss.vo.user.CreateAccountCheck;
import club.joylink.rtss.vo.user.UserGenerateConfigVO;
import com.google.common.collect.Lists;
import org.apache.tomcat.util.http.fileupload.FileUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotBlank;
import java.io.*;
import java.util.List;
import java.util.Objects;
/**
* 用户配置接口
@ -38,6 +46,8 @@ public class UserController {
@Autowired
private IDepartUserStatisticService iDepartUserStatisticService;
@Autowired
private OldPermissionDataSyncService syncService;
/**
*生成线下环境用户
*/
@ -54,7 +64,14 @@ public class UserController {
@RequestAttribute AccountVO user) {
this.iSysUserService.createAccount(accountCreateVO, user);
}
@Role({RoleEnum.SuperAdmin, RoleEnum.Admin})
@GetMapping(path = "sync")
public List<String> sync(){
if(!this.syncService.initData()){
throw new RuntimeException("正在同步。。。");
}
return this.syncService.sync();
}
/**
*分页获取用户数据
*/

View File

@ -4,7 +4,7 @@ import club.joylink.rtss.services.voice.IVoiceTrainingService;
import club.joylink.rtss.services.voice.baidu.TokenHolder;
import club.joylink.rtss.vo.client.PageQueryVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.client.VoiceRecognitionResult;
import club.joylink.rtss.vo.client.voice.VoiceRecognitionResult;
import club.joylink.rtss.vo.client.competition.VoiceErrorVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;

View File

@ -0,0 +1,34 @@
package club.joylink.rtss.dao;
import club.joylink.rtss.entity.DraftMapDisStation;
import club.joylink.rtss.entity.DraftMapDisStationExample;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface DraftMapDisStationDAO {
long countByExample(DraftMapDisStationExample example);
int deleteByExample(DraftMapDisStationExample example);
int deleteByPrimaryKey(Long id);
int insert(DraftMapDisStation record);
int insertSelective(DraftMapDisStation record);
List<DraftMapDisStation> selectByExample(DraftMapDisStationExample example);
DraftMapDisStation selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") DraftMapDisStation record, @Param("example") DraftMapDisStationExample example);
int updateByExample(@Param("record") DraftMapDisStation record, @Param("example") DraftMapDisStationExample example);
int updateByPrimaryKeySelective(DraftMapDisStation record);
int updateByPrimaryKey(DraftMapDisStation record);
}

View File

@ -0,0 +1,42 @@
package club.joylink.rtss.dao;
import java.util.List;
import club.joylink.rtss.entity.training2.DraftTraining2;
import club.joylink.rtss.entity.training2.DraftTraining2Example;
import club.joylink.rtss.entity.training2.DraftTraining2WithBLOBs;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface DraftTraining2DAO {
long countByExample(DraftTraining2Example example);
int deleteByExample(DraftTraining2Example example);
int deleteByPrimaryKey(Long id);
int insert(DraftTraining2WithBLOBs record);
int insertSelective(DraftTraining2WithBLOBs record);
List<DraftTraining2WithBLOBs> selectByExampleWithBLOBs(DraftTraining2Example example);
List<DraftTraining2> selectByExample(DraftTraining2Example example);
DraftTraining2WithBLOBs selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") DraftTraining2WithBLOBs record, @Param("example") DraftTraining2Example example);
int updateByExampleWithBLOBs(@Param("record") DraftTraining2WithBLOBs record, @Param("example") DraftTraining2Example example);
int updateByExample(@Param("record") DraftTraining2 record, @Param("example") DraftTraining2Example example);
int updateByPrimaryKeySelective(DraftTraining2WithBLOBs record);
int updateByPrimaryKeyWithBLOBs(DraftTraining2WithBLOBs record);
int updateByPrimaryKey(DraftTraining2 record);
}

View File

@ -0,0 +1,36 @@
package club.joylink.rtss.dao;
import club.joylink.rtss.entity.training2.DraftTraining2Progress;
import club.joylink.rtss.entity.training2.DraftTraining2ProgressExample;
import club.joylink.rtss.entity.training2.DraftTraining2ProgressWithBLOBs;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface DraftTraining2ProgressDao {
int deleteByPrimaryKey(Long id);
int deleteByTrainingId(Long trainingId);
int insert(DraftTraining2ProgressWithBLOBs record);
int insertSelective(DraftTraining2ProgressWithBLOBs record);
List<DraftTraining2ProgressWithBLOBs> selectByExampleWithBLOBs(DraftTraining2ProgressExample example);
List<DraftTraining2Progress> selectByExample(DraftTraining2ProgressExample example);
DraftTraining2ProgressWithBLOBs selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") DraftTraining2ProgressWithBLOBs record, @Param("example") DraftTraining2ProgressExample example);
int updateByExampleWithBLOBs(@Param("record") DraftTraining2ProgressWithBLOBs record, @Param("example") DraftTraining2ProgressExample example);
int updateByExample(@Param("record") DraftTraining2Progress record, @Param("example") DraftTraining2ProgressExample example);
int updateByPrimaryKeySelective(DraftTraining2ProgressWithBLOBs record);
int updateByPrimaryKeyWithBLOBs(DraftTraining2ProgressWithBLOBs record);
int updateByPrimaryKey(DraftTraining2Progress record);
}

View File

@ -2,11 +2,24 @@ package club.joylink.rtss.dao;
import club.joylink.rtss.entity.IscsDevice;
import club.joylink.rtss.entity.IscsDeviceExample;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* IscsDeviceDAO继承基类
*/
@Repository
public interface IscsDeviceDAO extends MyBatisBaseDao<IscsDevice, Long, IscsDeviceExample> {
}
@Insert(value = "<script>" +
"insert into iscs_device (map_id, code, `system`, station, position, type) " +
" values " +
" <foreach collection=\"list\" item=\"entity\" separator=\",\"> " +
" (#{entity.mapId,jdbcType=BIGINT}, #{entity.code,jdbcType=VARCHAR}, #{entity.system,jdbcType=VARCHAR}, " +
" #{entity.station,jdbcType=VARCHAR}, #{entity.position,jdbcType=VARCHAR}, #{entity.type,jdbcType=VARCHAR})" +
" </foreach>" +
"</script>")
void batchInsert(@Param("list") List<IscsDevice> iscsDevices);
}

View File

@ -2,11 +2,24 @@ package club.joylink.rtss.dao;
import club.joylink.rtss.entity.IscsSystemResources;
import club.joylink.rtss.entity.IscsSystemResourcesExample;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* IscsSystemResourcesDAO继承基类
*/
@Repository
public interface IscsSystemResourcesDAO extends MyBatisBaseDao<IscsSystemResources, Long, IscsSystemResourcesExample> {
}
@Insert(value = "<script>" +
"insert into iscs_system_resources (map_id, `system`, type, resource_ids) " +
" values " +
" <foreach collection=\"list\" item=\"entity\" separator=\",\"> " +
" (#{entity.mapId,jdbcType=BIGINT}, #{entity.system,jdbcType=VARCHAR}, " +
" #{entity.type,jdbcType=VARCHAR}, #{entity.resourceIds,jdbcType=VARCHAR})" +
" </foreach>" +
"</script>")
void batchInsert(@Param("list") List<IscsSystemResources> iscsSystemResources);
}

View File

@ -0,0 +1,12 @@
package club.joylink.rtss.dao;
import club.joylink.rtss.entity.OrgProject;
import club.joylink.rtss.entity.OrgProjectExample;
import org.springframework.stereotype.Repository;
/**
* OrgProjectDAO继承基类
*/
@Repository
public interface OrgProjectDAO extends MyBatisBaseDao<OrgProject, Long, OrgProjectExample> {
}

View File

@ -4,6 +4,7 @@ import club.joylink.rtss.entity.OrgUser;
import club.joylink.rtss.entity.OrgUserExample;
import club.joylink.rtss.vo.client.org.OrgUserVO;
import club.joylink.rtss.vo.client.org.CompanyUserQueryVO;
import club.joylink.rtss.vo.org.OrgUserRoleVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@ -20,4 +21,6 @@ public interface OrgUserDAO extends MyBatisBaseDao<OrgUser, Long, OrgUserExample
List<OrgUserVO> getUserCompanyDeparts(@Param("companyId")Integer companyId, @Param("userId")Long userId);
List<OrgUser> getCompanyManger(@Param("userId") Long userId);
List<OrgUserRoleVO> queryUserRoleList(@Param("userId") Long userId);
}

View File

@ -0,0 +1,72 @@
package club.joylink.rtss.dao;
import club.joylink.rtss.entity.training2.PublishedTraining2;
import club.joylink.rtss.entity.training2.PublishedTraining2Example;
import club.joylink.rtss.entity.training2.PublishedTraining2WithBLOBs;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@Mapper
@Repository
public interface PublishedTraining2DAO {
@Select("<script>select label_json from rts_published_training2 where org_id = #{orgId} and type = #{type}</script>")
List<String> selectAllLabel(@Param("orgId") Long orgId,@Param("type") String type);
long countByExample(PublishedTraining2Example example);
int deleteByExample(PublishedTraining2Example example);
int deleteByPrimaryKey(Long id);
int insert(PublishedTraining2WithBLOBs record);
int insertSelective(PublishedTraining2WithBLOBs record);
List<PublishedTraining2WithBLOBs> selectByExampleWithBLOBs(PublishedTraining2Example example);
List<PublishedTraining2> selectByExample(PublishedTraining2Example example);
PublishedTraining2WithBLOBs selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") PublishedTraining2WithBLOBs record, @Param("example") PublishedTraining2Example example);
int updateByExampleWithBLOBs(@Param("record") PublishedTraining2WithBLOBs record, @Param("example") PublishedTraining2Example example);
int updateByExample(@Param("record") PublishedTraining2 record, @Param("example") PublishedTraining2Example example);
int updateByPrimaryKeySelective(PublishedTraining2WithBLOBs record);
int updateByPrimaryKeyWithBLOBs(PublishedTraining2WithBLOBs record);
int updateByPrimaryKey(PublishedTraining2 record);
@Insert(value = "<script>" +
"insert into published_training2 (name, map_id, description, type, label_json, map_location_json, bg_scene_json," +
" run_plan_id, opera_json, step_json, scoring_rule_json, member_json, player_id_json, failure_condition_json," +
" creator_id, create_time, update_time, state, final_scenes_json, org_id, client)" +
"values " +
" <foreach collection=\"list\" item=\"entity\" separator=\",\"> " +
" (#{entity.name,jdbcType=VARCHAR}, #{entity.mapId,jdbcType=BIGINT}, #{entity.description,jdbcType=VARCHAR}, " +
" #{entity.type,jdbcType=VARCHAR}, #{entity.labelJson,jdbcType=VARCHAR}, #{entity.mapLocationJson,jdbcType=VARCHAR}," +
" #{entity.bgSceneJson,jdbcType=LONGVARCHAR}, #{entity.runPlanId,jdbcType=BIGINT}, #{entity.operaJson,jdbcType=LONGVARCHAR}," +
" #{entity.stepJson,jdbcType=LONGVARCHAR}, #{entity.scoringRuleJson,jdbcType=LONGVARCHAR}, #{entity.memberJson,jdbcType=LONGVARCHAR}," +
" #{entity.playerIdJson,jdbcType=LONGVARCHAR}, #{entity.failureConditionJson,jdbcType=VARCHAR}, #{entity.creatorId,jdbcType=BIGINT}," +
" #{entity.createTime,jdbcType=DATETIME}, #{entity.updateTime,jdbcType=DATETIME}, #{entity.state,jdbcType=INT}," +
" #{entity.finalScenesJson,jdbcType=LONGVARCHAR}, #{entity.orgId,jdbcType=BIGINT}, #{entity.client,jdbcType=VARCHAR})" +
" </foreach>" +
"</script>")
void batchInsert(@Param("list") PublishedTraining2 list);
int insertList(@Param("list") List<PublishedTraining2WithBLOBs> list);
List<Map<String, Long>> selectTrainingByRuleId(@Param("ruleIdList") List<Long> ruleIdList, @Param("mapIdList") List<Long> mapIdList);
List<Long> selectTrainingIdByRuleNameAndMapId(@Param("ruleNameList") List<Map<String,String>> ruleNameMapList, @Param("mapId") Long mapId);
}

View File

@ -0,0 +1,39 @@
package club.joylink.rtss.dao;
import club.joylink.rtss.entity.RtsMapFunction;
import club.joylink.rtss.entity.RtsMapFunctionExample;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface RtsMapFunctionDAO {
long countByExample(RtsMapFunctionExample example);
int deleteByExample(RtsMapFunctionExample example);
int deleteByPrimaryKey(Long id);
int insert(RtsMapFunction record);
int insertSelective(RtsMapFunction record);
List<RtsMapFunction> selectByExampleWithBLOBs(RtsMapFunctionExample example);
List<RtsMapFunction> selectByExample(RtsMapFunctionExample example);
RtsMapFunction selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") RtsMapFunction record, @Param("example") RtsMapFunctionExample example);
int updateByExampleWithBLOBs(@Param("record") RtsMapFunction record, @Param("example") RtsMapFunctionExample example);
int updateByExample(@Param("record") RtsMapFunction record, @Param("example") RtsMapFunctionExample example);
int updateByPrimaryKeySelective(RtsMapFunction record);
int updateByPrimaryKeyWithBLOBs(RtsMapFunction record);
int updateByPrimaryKey(RtsMapFunction record);
}

View File

@ -2,12 +2,13 @@ package club.joylink.rtss.dao;
import club.joylink.rtss.entity.RunPlanRouting;
import club.joylink.rtss.entity.RunPlanRoutingExample;
import java.util.List;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface RunPlanRoutingDAO {
long countByExample(RunPlanRoutingExample example);
@ -52,4 +53,17 @@ public interface RunPlanRoutingDAO {
"</script>")
Integer countUserRoutingBySectionData(@Param("userId") Long userId, @Param("mapId") Long mapId, @Param("sectionData") String sectionData);
@Insert("<script>" +
" INSERT INTO run_plan_routing (map_id, user_id, `name`, `code`, type, start_station_code, start_section_code, " +
" end_station_code, end_section_code, `right`, destination_code, remarks, section_data)" +
" VALUES " +
" <foreach collection=\"routings\" item=\"item\" separator=\",\">" +
" (#{item.mapId, jdbcType=BIGINT}, #{item.userId, jdbcType=BIGINT}, " +
" #{item.name, jdbcType=VARCHAR}, #{item.code, jdbcType=VARCHAR}, #{item.type, jdbcType=VARCHAR}, " +
" #{item.startStationCode, jdbcType=VARCHAR}, #{item.startSectionCode, jdbcType=VARCHAR}, " +
" #{item.endStationCode, jdbcType=VARCHAR}, #{item.endSectionCode, jdbcType=VARCHAR}, #{item.right, jdbcType=TINYINT}, " +
" #{item.destinationCode, jdbcType=VARCHAR}, #{item.remarks, jdbcType=VARCHAR}, #{item.sectionData, jdbcType=LONGVARCHAR})" +
" </foreach>" +
"</script>")
void batchInsert(List<RunPlanRouting> routings);
}

View File

@ -0,0 +1,34 @@
package club.joylink.rtss.dao;
import club.joylink.rtss.entity.training2.TraceTraining2;
import club.joylink.rtss.entity.training2.TraceTraining2Example;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface TraceTraining2DAO {
long countByExample(TraceTraining2Example example);
int deleteByExample(TraceTraining2Example example);
int deleteByPrimaryKey(Long id);
int insert(TraceTraining2 record);
int insertSelective(TraceTraining2 record);
List<TraceTraining2> selectByExample(TraceTraining2Example example);
TraceTraining2 selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") TraceTraining2 record, @Param("example") TraceTraining2Example example);
int updateByExample(@Param("record") TraceTraining2 record, @Param("example") TraceTraining2Example example);
int updateByPrimaryKeySelective(TraceTraining2 record);
int updateByPrimaryKey(TraceTraining2 record);
}

View File

@ -0,0 +1,10 @@
package club.joylink.rtss.dao.minio;
import club.joylink.rtss.dao.MyBatisBaseDao;
import club.joylink.rtss.entity.minio.MinioFileInfo;
import club.joylink.rtss.entity.minio.MinioFileInfoExample;
import org.springframework.stereotype.Repository;
@Repository
public interface MinioFileInfoDao extends MyBatisBaseDao<MinioFileInfo, Long, MinioFileInfoExample> {
}

View File

@ -0,0 +1,34 @@
package club.joylink.rtss.dao.paper;
import club.joylink.rtss.entity.paper.PaperComposition;
import club.joylink.rtss.entity.paper.PaperCompositionExample;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface PaperCompositionDAO {
long countByExample(PaperCompositionExample example);
int deleteByExample(PaperCompositionExample example);
int deleteByPrimaryKey(Long id);
int insert(PaperComposition record);
int insertSelective(PaperComposition record);
List<PaperComposition> selectByExample(PaperCompositionExample example);
PaperComposition selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") PaperComposition record, @Param("example") PaperCompositionExample example);
int updateByExample(@Param("record") PaperComposition record, @Param("example") PaperCompositionExample example);
int updateByPrimaryKeySelective(PaperComposition record);
int updateByPrimaryKey(PaperComposition record);
}

View File

@ -0,0 +1,71 @@
package club.joylink.rtss.dao.paper;
import club.joylink.rtss.entity.paper.question.PaperQuestion;
import club.joylink.rtss.entity.paper.question.PaperQuestionExample;
import club.joylink.rtss.entity.paper.question.PaperQuestionWithBLOBs;
import club.joylink.rtss.entity.project.Project;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface PaperQuestionDAO {
@Select("<script>" +
"select * from rts_paper_question where 1 = 1 " +
// "<choose>" +
// "<when test=\"projectCode == '"+ Project.DEFAULT_PROJECT_CODE +"'\">"+
// " and project_code is null" +
// "</when>"+
// " <otherwise>"+
// " and project_code = #{projectCode} "+
// " </otherwise>" +
// "</choose>" +
" and org_id = #{companyId,jdbcType=BIGINT} " +
// "<if test=\"companyIdList != null and companyIdList.size > 0\">"+
// "<foreach collection=\"companyIdList\" open=\" and company_id in (\" close=\")\" item=\"d\" separator=\",\">"+
// " #{d} "+
// "</foreach></if>"+
" and is_del= #{isDelete,jdbcType=INTEGER} " +
"<if test=\"types != null and types.size > 0\">"+
"<foreach collection=\"types\" open=\" and type in (\" close=\")\" item=\"d\" separator=\",\">"+
" #{d} "+
"</foreach></if>"+
"<if test=\"lable != null and lable.size > 0\"> " +
" <foreach collection=\"lable\" open=\" and (\" close=\")\" item=\"d\" separator=\" or \"> "+
" find_in_set(#{d},race_lable) > 0 "+
" </foreach>" +
"</if>" +
"</script>")
List<PaperQuestionWithBLOBs> findFromAndRaceLable(Long companyId,int isDelete, List<String> lable, List<String> types);
long countByExample(PaperQuestionExample example);
int deleteByExample(PaperQuestionExample example);
int deleteByPrimaryKey(Long id);
int insert(PaperQuestionWithBLOBs record);
int insertSelective(PaperQuestionWithBLOBs record);
List<PaperQuestionWithBLOBs> selectByExampleWithBLOBs(PaperQuestionExample example);
List<PaperQuestion> selectByExample(PaperQuestionExample example);
PaperQuestionWithBLOBs selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") PaperQuestionWithBLOBs record, @Param("example") PaperQuestionExample example);
int updateByExampleWithBLOBs(@Param("record") PaperQuestionWithBLOBs record, @Param("example") PaperQuestionExample example);
int updateByExample(@Param("record") PaperQuestion record, @Param("example") PaperQuestionExample example);
int updateByPrimaryKeySelective(PaperQuestionWithBLOBs record);
int updateByPrimaryKeyWithBLOBs(PaperQuestionWithBLOBs record);
int updateByPrimaryKey(PaperQuestion record);
}

View File

@ -0,0 +1,34 @@
package club.joylink.rtss.dao.paper;
import club.joylink.rtss.entity.paper.PaperRule;
import club.joylink.rtss.entity.paper.PaperRuleExample;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface PaperRuleDAO {
long countByExample(PaperRuleExample example);
int deleteByExample(PaperRuleExample example);
int deleteByPrimaryKey(Long id);
int insert(PaperRule record);
int insertSelective(PaperRule record);
List<PaperRule> selectByExample(PaperRuleExample example);
PaperRule selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") PaperRule record, @Param("example") PaperRuleExample example);
int updateByExample(@Param("record") PaperRule record, @Param("example") PaperRuleExample example);
int updateByPrimaryKeySelective(PaperRule record);
int updateByPrimaryKey(PaperRule record);
}

View File

@ -0,0 +1,51 @@
package club.joylink.rtss.dao.paper;
import club.joylink.rtss.entity.paper.PaperUser;
import club.joylink.rtss.entity.paper.PaperUserExample;
import java.util.List;
import club.joylink.rtss.vo.paper.CurveForClassVO;
import club.joylink.rtss.vo.paper.PageUserDetailQuery;
import club.joylink.rtss.vo.paper.PageUserDetailVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface PaperUserDAO {
@Select("<script>select " +
" C.nickname,C.id as user_id,C.account,B.score,B.start_time,B.end_time" +
" from (" +
"select * from org_user where 1 = 1 and org_id = #{query.orgId} and role = #{query.orgRole} ) A " +
" left join ( select B.user_id ,B.score,B.start_time,B.end_time from " +
" (select max(id) as id from rts_paper_user where pc_id = #{query.pcId} GROUP BY user_id ) A" +
" INNER JOIN rts_paper_user B on A.id = B.id ) B on A.user_id = B.user_id " +
" left join sys_account C on A.user_id = C.id </script>")
List<PageUserDetailVO> selectDetail(@Param("query") PageUserDetailQuery query);
long countByExample(PaperUserExample example);
int deleteByExample(PaperUserExample example);
int deleteByPrimaryKey(Long id);
int insert(PaperUser record);
int insertSelective(PaperUser record);
List<PaperUser> selectByExample(PaperUserExample example);
PaperUser selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") PaperUser record, @Param("example") PaperUserExample example);
int updateByExample(@Param("record") PaperUser record, @Param("example") PaperUserExample example);
int updateByPrimaryKeySelective(PaperUser record);
int updateByPrimaryKey(PaperUser record);
}

View File

@ -0,0 +1,34 @@
package club.joylink.rtss.dao.paper;
import club.joylink.rtss.entity.paper.PaperUserQuestion;
import club.joylink.rtss.entity.paper.PaperUserQuestionExample;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface PaperUserQuestionDAO {
long countByExample(PaperUserQuestionExample example);
int deleteByExample(PaperUserQuestionExample example);
int deleteByPrimaryKey(Long id);
int insert(PaperUserQuestion record);
int insertSelective(PaperUserQuestion record);
List<PaperUserQuestion> selectByExample(PaperUserQuestionExample example);
PaperUserQuestion selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") PaperUserQuestion record, @Param("example") PaperUserQuestionExample example);
int updateByExample(@Param("record") PaperUserQuestion record, @Param("example") PaperUserQuestionExample example);
int updateByPrimaryKeySelective(PaperUserQuestion record);
int updateByPrimaryKey(PaperUserQuestion record);
}

View File

@ -0,0 +1,43 @@
package club.joylink.rtss.dao.permission;
import club.joylink.rtss.entity.permission.Permission;
import club.joylink.rtss.entity.permission.PermissionExample;
import java.util.List;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface AcPermissionDAO {
@Insert("<script> insert into rts_permission (id,project_code, map_id, permission_type, " +
" `name`, des, creator_id, create_time, update_time,is_sync)" +
" values (#{record.id,jdbcType=BIGINT},#{record.projectCode,jdbcType=VARCHAR}, #{record.mapId,jdbcType=BIGINT}" +
", #{record.permissionType,jdbcType=INTEGER}," +
" #{record.name,jdbcType=VARCHAR}, #{record.des,jdbcType=VARCHAR}, #{record.creatorId,jdbcType=BIGINT}, " +
" #{record.createTime,jdbcType=TIMESTAMP}, #{record.updateTime,jdbcType=TIMESTAMP},#{record.isSync,jdbcType=BIT})</script>")
void customerSyncInsert(@Param("record") Permission record);
long countByExample(PermissionExample example);
int deleteByExample(PermissionExample example);
int deleteByPrimaryKey(Long id);
int insert(Permission record);
int insertSelective(Permission record);
List<Permission> selectByExample(PermissionExample example);
Permission selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") Permission record, @Param("example") PermissionExample example);
int updateByExample(@Param("record") Permission record, @Param("example") PermissionExample example);
int updateByPrimaryKeySelective(Permission record);
int updateByPrimaryKey(Permission record);
}

View File

@ -0,0 +1,122 @@
package club.joylink.rtss.dao.permission;
import club.joylink.rtss.entity.permission.PermissionSubject;
import club.joylink.rtss.entity.permission.PermissionSubjectExample;
import club.joylink.rtss.vo.permission.PermissionDistributeStatusEnum;
import club.joylink.rtss.vo.permission.PermissionSubjectStatusEnum;
import club.joylink.rtss.vo.permission.subject.PermissionSubjectQueryVO;
import club.joylink.rtss.vo.permission.subject.PermissionSubjectVO;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface PermissionSubjectDAO {
@Select("<script>" +
"select A.id,A.subject_type,A.subject_id," +
"(case when A.subject_type = 'user' then B.name when A.subject_type = 'org' then C.name when A.subject_type = 'project' then E.name end) as named," +
"(case when A.subject_type = 'user' then B.nickname else '' end) as nick_name," +
"(case when A.subject_type = 'project' then E.code else '' end ) as project_code,"+
" A.amount,A.remains,A.status,A.forever,A.start_time,A.end_time,A.create_time," +
" D.name as permission_name,A.permission_id,A.distribute_id,D.map_id,D.project_code,D.map_id,D.permission_type " +
" from rts_permission_subject A left join sys_account B on A.subject_type = 'user' and A.subject_id = B.id " +
" left join org C on A.subject_type = 'org' and A.subject_id = C.id " +
" left join rts_project E on A.subject_type = 'project' and A.subject_id = E.id " +
" left join rts_permission D on A.permission_id = D.id " +
//" left join rts_distribute E on A.distribute_id = E.id " +
" where 1 = 1 " +
/*"<if test=\"mapId != null and mapId != 0\"> " +
" and E.map_id = #{mapId} " +
"</if> " +*/
" and (C.id = #{orgId} or B.id = #{userId} or E.code = #{projectCode}) " +
" and A.status = #{status}" +
"</script>")
List<PermissionSubjectVO> findPermissionWithMapIdAndUserInfo(/*@Param("mapId") Long mapId,*/@Param("orgId") Long orgId,@Param("userId") Long userId,@Param("status") Integer status,@Param("projectCode") String projectCode);
@Select("<script>" +
"select A.id,A.subject_type,A.subject_id, " +
"(case when A.subject_type = 'user' then B.name when A.subject_type = 'org' then C.name when A.subject_type = 'project' then E.name end) as named," +
"(case when A.subject_type = 'user' then B.nickname else '' end) as nick_name," +
"(case when A.subject_type = 'project' then E.code else '' end ) as project_code,"+
"B.name as permission_name,A.permission_id " +
" from rts_permission_subject A left join rts_permission B on A.permission_id = B.id" +
" left join sys_account C on A.subject_type = 'user' and A.subject_id = C.id " +
" left join org D on A.subject_type = 'org' and A.subject_id = C.id " +
" left join rts_project E on A.subject_type = 'project' and A.subject_id = E.id " +
" where 1 = 1 and A.parent_id in " +
"<if test=\"idList != null and idList.size > 0\"> " +
" <foreach collection=\"idList\" open=\"(\" close=\")\" item=\"d\" separator=\" , \"> "+
" #{d}"+
" </foreach>" +
"</if> " +
"order by id asc" +
"</script>")
List<PermissionSubjectVO> findDistributePermission(List<Long> idList);
@Select("<script>" +
"select A.id,A.subject_type,A.subject_id," +
"(case when A.subject_type = 'user' then B.name when A.subject_type = 'org' then C.name when A.subject_type = 'project' then E.name end) as named," +
"(case when A.subject_type = 'user' then B.nickname else '' end) as nick_name," +
"(case when A.subject_type = 'project' then E.code else '' end ) as project_code,"+
"A.amount,A.remains,A.status,A.forever,A.start_time,A.end_time,A.create_time,D.name as permission_name,A.permission_id " +
" from rts_permission_subject A left join sys_account B on A.subject_type = 'user' and A.subject_id = B.id " +
" left join org C on A.subject_type = 'org' and A.subject_id = C.id " +
" left join rts_project E on A.subject_type = 'project' and A.subject_id = E.id " +
" left join rts_permission D on A.permission_id = D.id " +
" where 1 = 1 " +
"<if test=\"vo.subType!=null and vo.subType!=''\">" +
" AND A.subject_type = #{vo.subType} " +
"</if>"+
"<if test=\"vo.named!=null and vo.named!=''\">" +
" AND (B.name = #{vo.named} or B.nickname = #{vo.named} or C.name = #{vo.named} or E.name = #{vo.named}) " +
"</if>"+
"<if test=\"vo.status!=null\">" +
" AND A.status = #{vo.status} " +
"</if>"+
" order by id desc " +
"</script>")
List<PermissionSubjectVO> customerQuery(@Param("vo") PermissionSubjectQueryVO queryVO);
/**
* 状态参考 {@link PermissionSubjectStatusEnum}
*/
@Update("<script> update rts_permission_subject set status = 2,update_time = now() where forever = 0 and (`status` is null or `status` = 1) " +
" <![CDATA[ and end_time < now() ]]> </script>")
void updateStatusByTimeOver();
long countByExample(PermissionSubjectExample example);
int deleteByExample(PermissionSubjectExample example);
int deleteByPrimaryKey(Long id);
int insert(PermissionSubject record);
@Insert("<script>" +
"insert into rts_permission_subject (permission_id, subject_type, subject_id, amount, remains, `status`,forever, start_time, end_time,create_time, distribute_id, parent_id,is_sync)" +
" values " +
"<foreach collection=\"list\" item=\"item\" index=\"index\" separator=\",\"> " +
"(#{item.permissionId,jdbcType=BIGINT}, #{item.subjectType,jdbcType=VARCHAR}, #{item.subjectId,jdbcType=BIGINT}," +
" #{item.amount,jdbcType=INTEGER}, #{item.remains,jdbcType=INTEGER}, #{item.status,jdbcType=INTEGER}, " +
" #{item.forever,jdbcType=BIT}, #{item.startTime,jdbcType=TIMESTAMP}, #{item.endTime,jdbcType=TIMESTAMP}," +
" #{item.createTime,jdbcType=TIMESTAMP}, #{item.distributeId,jdbcType=BIGINT}, #{item.parentId,jdbcType=BIGINT}," +
" #{item.isSync,jdbcType=BIT})" +
"</foreach>" +
"</script>")
void batchInsert(@Param("list") List<PermissionSubject> list);
int insertSelective(PermissionSubject record);
List<PermissionSubject> selectByExample(PermissionSubjectExample example);
PermissionSubject selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") PermissionSubject record, @Param("example") PermissionSubjectExample example);
int updateByExample(@Param("record") PermissionSubject record, @Param("example") PermissionSubjectExample example);
int updateByPrimaryKeySelective(PermissionSubject record);
int updateByPrimaryKey(PermissionSubject record);
}

View File

@ -0,0 +1,45 @@
package club.joylink.rtss.dao.permission;
import club.joylink.rtss.entity.permission.PermissionSubject;
import club.joylink.rtss.entity.permission.PermissionSystemAbility;
import club.joylink.rtss.entity.permission.PermissionSystemAbilityExample;
import java.util.List;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface PermissionSystemAbilityDAO {
long countByExample(PermissionSystemAbilityExample example);
int deleteByExample(PermissionSystemAbilityExample example);
int deleteByPrimaryKey(Long id);
@Insert("<script>" +
"insert into rts_permission_system_ability (permission_id, system_ability_id, is_sync)" +
" values " +
"<foreach collection=\"list\" item=\"item\" index=\"index\" separator=\",\"> " +
"(#{item.permissionId,jdbcType=BIGINT}, #{item.systemAbilityId,jdbcType=BIGINT}, #{item.isSync,jdbcType=BIT})" +
"</foreach>" +
"</script>")
void batchInsert(@Param("list") List<PermissionSystemAbility> list);
int insert(PermissionSystemAbility record);
int insertSelective(PermissionSystemAbility record);
List<PermissionSystemAbility> selectByExample(PermissionSystemAbilityExample example);
PermissionSystemAbility selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") PermissionSystemAbility record, @Param("example") PermissionSystemAbilityExample example);
int updateByExample(@Param("record") PermissionSystemAbility record, @Param("example") PermissionSystemAbilityExample example);
int updateByPrimaryKeySelective(PermissionSystemAbility record);
int updateByPrimaryKey(PermissionSystemAbility record);
}

View File

@ -0,0 +1,73 @@
package club.joylink.rtss.dao.permission;
import java.util.List;
import club.joylink.rtss.entity.permission.RtsPermissionDistribute;
import club.joylink.rtss.entity.permission.RtsPermissionDistributeExample;
import club.joylink.rtss.vo.permission.PermissionDistributeStatusEnum;
import club.joylink.rtss.vo.permission.distribute.DistributeDataVO;
import club.joylink.rtss.vo.permission.distribute.DistributeQueryVO;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface RtsPermissionDistributeDAO {
@Select("<script>" +
"select A.id,A.forever,A.status,A.create_time,A.update_time,A.start_time,A.end_time,A.dsc,B.nickname as nickName" +
" from rts_permission_distribute A left join sys_account B on A.creator_id = B.id where 1= 1 " +
"<if test=\"vo.dsc!=null and vo.dsc!=''\">" +
" AND A.dsc Like CONCAT('%',#{vo.dsc},'%') " +
"</if>"+
"<if test=\"vo.status!=null\">" +
" AND A.status = #{vo.status} " +
"</if> order by A.id desc "+
"</script>")
List<DistributeDataVO> selectCustom(@Param("vo") DistributeQueryVO vo);
@Insert("<script>" +
"insert into rts_permission_distribute (id,map_id, source_subject_id, forever,`status`, create_time, update_time,start_time, end_time, creator_id,dsc,is_sync)" +
" values (#{record.id,jdbcType=BIGINT},#{record.mapId,jdbcType=BIGINT}, #{record.sourceSubjectId,jdbcType=BIGINT}, #{record.forever,jdbcType=BIT}, " +
" #{record.status,jdbcType=INTEGER}, #{record.createTime,jdbcType=TIMESTAMP}, #{record.updateTime,jdbcType=TIMESTAMP}, " +
" #{record.startTime,jdbcType=TIMESTAMP}, #{record.endTime,jdbcType=TIMESTAMP}, #{record.creatorId,jdbcType=BIGINT}, " +
" #{record.dsc,jdbcType=VARCHAR},#{record.isSync,jdbcType=BIT})</script>")
void customerSyncInsert(@Param("record") RtsPermissionDistribute record);
@Insert("<script>" +
"insert into rts_permission_distribute (id,map_id, source_subject_id, forever,`status`, create_time, update_time,start_time, end_time, creator_id,dsc,is_sync)" +
" values" +
"<foreach collection=\"list\" item=\"item\" index=\"index\" separator=\",\"> " +
" (#{item.id,jdbcType=BIGINT},#{item.mapId,jdbcType=BIGINT}, #{item.sourceSubjectId,jdbcType=BIGINT}, #{item.forever,jdbcType=BIT}, " +
" #{item.status,jdbcType=INTEGER}, #{item.createTime,jdbcType=TIMESTAMP}, #{item.updateTime,jdbcType=TIMESTAMP}, " +
" #{item.startTime,jdbcType=TIMESTAMP}, #{item.endTime,jdbcType=TIMESTAMP}, #{item.creatorId,jdbcType=BIGINT}, " +
" #{item.dsc,jdbcType=VARCHAR},#{item.isSync,jdbcType=BIT})" +
"</foreach>" +
"</script>")
void customerSyncBatchInsert(@Param("list") List<RtsPermissionDistribute> record);
/**
* 状态参考 {@link PermissionDistributeStatusEnum}
*/
@Update("<script>update rts_permission_distribute set status = 2,update_time = now() where forever = 0 and (`status` is null or `status` = 1) <![CDATA[ and end_time < now() ]]></script>")
void updateStatusByTimeOver();
long countByExample(RtsPermissionDistributeExample example);
int deleteByExample(RtsPermissionDistributeExample example);
int deleteByPrimaryKey(Long id);
int insert(RtsPermissionDistribute record);
int insertSelective(RtsPermissionDistribute record);
List<RtsPermissionDistribute> selectByExample(RtsPermissionDistributeExample example);
RtsPermissionDistribute selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") RtsPermissionDistribute record, @Param("example") RtsPermissionDistributeExample example);
int updateByExample(@Param("record") RtsPermissionDistribute record, @Param("example") RtsPermissionDistributeExample example);
int updateByPrimaryKeySelective(RtsPermissionDistribute record);
int updateByPrimaryKey(RtsPermissionDistribute record);
}

View File

@ -0,0 +1,61 @@
package club.joylink.rtss.dao.permission;
import club.joylink.rtss.entity.permission.RtsPermissionDistributeRef;
import club.joylink.rtss.entity.permission.RtsPermissionDistributeRefExample;
import java.util.List;
import club.joylink.rtss.vo.permission.distribute.DistributeDataVO;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface RtsPermissionDistributeRefDAO {
@Select("<script>select A.permission_id,B.name as permissionName,A.amount,A.remains " +
" from rts_permission_distribute_ref A left join rts_permission B on A.permission_id = B.id " +
" where 1 = 1 and A.distribute_id = #{disId}" +
"</script>")
List<DistributeDataVO.DistributePermissionVO> selectByDisId(Long disId);
@Select("<script>select A.permission_id,B.name as permissionName,A.amount,A.remains " +
" from rts_permission_distribute_ref A left join rts_permission B on A.permission_id = B.id " +
" where 1 = 1 and A.distribute_id = #{disId}" +
"</script>")
List<DistributeDataVO.DistributePermissionVO> selectTimeOut();
@Insert("<script>" +
"insert into rts_permission_distribute_ref (distribute_id, permission_id, amount,remains, is_sync)" +
" values " +
"<foreach collection=\"list\" item=\"item\" index=\"index\" separator=\",\"> " +
"(#{item.distributeId,jdbcType=BIGINT}, #{item.permissionId,jdbcType=BIGINT}, #{item.amount,jdbcType=INTEGER},\n" +
" #{item.remains,jdbcType=INTEGER}, #{item.isSync,jdbcType=BIT})" +
"</foreach>" +
"</script>")
void batchInsert(@Param("list") List<RtsPermissionDistributeRef> refList);
long countByExample(RtsPermissionDistributeRefExample example);
int deleteByExample(RtsPermissionDistributeRefExample example);
int deleteByPrimaryKey(Long id);
int insert(RtsPermissionDistributeRef record);
int insertSelective(RtsPermissionDistributeRef record);
List<RtsPermissionDistributeRef> selectByExample(RtsPermissionDistributeRefExample example);
RtsPermissionDistributeRef selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") RtsPermissionDistributeRef record, @Param("example") RtsPermissionDistributeRefExample example);
int updateByExample(@Param("record") RtsPermissionDistributeRef record, @Param("example") RtsPermissionDistributeRefExample example);
int updateByPrimaryKeySelective(RtsPermissionDistributeRef record);
int updateByPrimaryKey(RtsPermissionDistributeRef record);
}

View File

@ -0,0 +1,30 @@
package club.joylink.rtss.dao.permission;
import club.joylink.rtss.entity.permission.Permission;
import club.joylink.rtss.entity.permission.PermissionExample;
import club.joylink.rtss.vo.permission.sync.UserPermissionVO;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface SyncDAO {
List<UserPermissionVO> findCanUsedData();
List<UserPermissionVO> findPackageData(List<Long> idList);
@Delete("<script>delete from rts_permission </script>")
void clearRtsPermission();
@Delete("<script>delete from rts_permission_distribute</script>")
void clearRtsDistribute();
@Delete("<script>delete from rts_permission_distribute_ref</script>")
void clearRtsDistributeRef();
@Delete("<script>delete from rts_permission_system_ability</script>")
void clearRtsPermissionSystemAbility();
@Delete("<script>delete from rts_permission_subject</script>")
void clearRtsPermissionSubject();
}

View File

@ -0,0 +1,64 @@
package club.joylink.rtss.dao.permission;
import club.joylink.rtss.entity.permission.SystemAbility;
import club.joylink.rtss.entity.permission.SystemAbilityExample;
import java.util.List;
import club.joylink.rtss.vo.permission.FindAbilityBasicByPageReqVo;
import club.joylink.rtss.vo.permission.PermissionSystemAbilityVO;
import club.joylink.rtss.vo.permission.SystemAbilityRspVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface SystemAbilityDAO {
@Select("<script>" +
"select A.id,${permissionId} as permission_id,A.type,A.ability_id,A.status,A.name as ability_name " +
"from rts_system_ability A " +
"</script>")
List<PermissionSystemAbilityVO> findAll(@Param("permissionId") Long showPermissionId);
@Select("<script>" +
"select A.id,B.permission_id,A.type,A.ability_id,A.status,A.name as ability_name " +
"from rts_system_ability A , rts_permission_system_ability B " +
"where 1 = 1 and A.id = B.system_ability_id " +
" <foreach collection=\"permissions\" open=\" and B.permission_id in (\" close=\")\" item=\"d\" separator=\" , \"> "+
" #{d} "+
" </foreach>" +
"</script>")
List<PermissionSystemAbilityVO> findSystemAbilityByPermissionId(List<Long> permissions);
@Select("<script>" +
"select A.*,B.nickname as nick_name,C.name as map_name from rts_system_ability A left join sys_account B on A.creator_id = B.id " +
" left join map_info C on A.map_id = C.id where 1 = 1 " +
"<if test=\"vo.name!=null and vo.name!=''\">" +
" AND A.name Like CONCAT('%',#{vo.name},'%') " +
"</if>"+
"<if test=\"vo.mapId!=null\">" +
" AND A.map_id =#{vo.mapId} " +
"</if>"+
"</script>")
List<SystemAbilityRspVo> findPaging(@Param("vo") FindAbilityBasicByPageReqVo vo);
long countByExample(SystemAbilityExample example);
int deleteByExample(SystemAbilityExample example);
int deleteByPrimaryKey(Long id);
int insert(SystemAbility record);
int insertSelective(SystemAbility record);
List<SystemAbility> selectByExample(SystemAbilityExample example);
SystemAbility selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") SystemAbility record, @Param("example") SystemAbilityExample example);
int updateByExample(@Param("record") SystemAbility record, @Param("example") SystemAbilityExample example);
int updateByPrimaryKeySelective(SystemAbility record);
int updateByPrimaryKey(SystemAbility record);
}

Some files were not shown because too many files have changed in this diff Show More