This commit is contained in:
zhouwentao 2024-03-04 22:25:21 +08:00
parent 1a4522621e
commit 8812c7fdce
138 changed files with 9334 additions and 55618 deletions

View File

@ -1,13 +0,0 @@
FROM mysql:8.0.19
MAINTAINER jeecgos@163.com
ENV TZ=Asia/Shanghai
RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
COPY ./tables_nacos.sql /docker-entrypoint-initdb.d
COPY ./jeecgboot-mysql-5.7.sql /docker-entrypoint-initdb.d
COPY ./tables_xxl_job.sql /docker-entrypoint-initdb.d

File diff suppressed because one or more lines are too long

View File

@ -1,330 +0,0 @@
CREATE database if NOT EXISTS `nacos` default character set utf8mb4 collate utf8mb4_general_ci;
use `nacos`;
/*
Navicat Premium Data Transfer
Source Server : mysql5.7
Source Server Type : MySQL
Source Server Version : 50738
Source Host : 127.0.0.1:3306
Source Schema : nacos-os
Target Server Type : MySQL
Target Server Version : 50738
File Encoding : 65001
Date: 06/08/2022 15:12:35
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for config_info
-- ----------------------------
DROP TABLE IF EXISTS `config_info`;
CREATE TABLE `config_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id',
`group_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
`content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'content',
`md5` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
`src_user` text CHARACTER SET utf8 COLLATE utf8_bin NULL COMMENT 'source user',
`src_ip` varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'source ip',
`app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
`tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT '租户字段',
`c_desc` varchar(256) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
`c_use` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
`effect` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
`type` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
`c_schema` text CHARACTER SET utf8 COLLATE utf8_bin NULL,
`encrypted_data_key` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '加密key',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_configinfo_datagrouptenant`(`data_id`, `group_id`, `tenant_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 42 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'config_info' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of config_info
-- ----------------------------
INSERT INTO `config_info` VALUES (1, 'jeecg-dev.yaml', 'DEFAULT_GROUP', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: jeecg-boot-es:9200\n check-enabled: false\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', 'edb0e79d570edf341755caf3853f11e4', '2021-03-03 13:01:11', '2023-07-17 10:34:57', 'nacos', '192.168.1.129', '', '', '', '', '', 'yaml', '', '');
INSERT INTO `config_info` VALUES (2, 'jeecg.yaml', 'DEFAULT_GROUP', 'server:\n tomcat:\n max-swallow-size: -1\n error:\n include-exception: true\n include-stacktrace: ALWAYS\n include-message: ALWAYS\n compression:\n enabled: true\n min-response-size: 1024\n mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,image/*\nmanagement:\n health:\n mail:\n enabled: false\n endpoints:\n web:\n exposure:\n include: \"*\"\n health:\n sensitive: true\n endpoint:\n health:\n show-details: ALWAYS\nspring:\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n mail:\n host: smtp.163.com\n username: jeecgos@163.com\n password: ??\n properties:\n mail:\n smtp:\n auth: true\n starttls:\n enable: true\n required: true\n quartz:\n job-store-type: jdbc\n initialize-schema: embedded\n auto-startup: false\n startup-delay: 1s\n overwrite-existing-jobs: true\n properties:\n org:\n quartz:\n scheduler:\n instanceName: MyScheduler\n instanceId: AUTO\n jobStore:\n class: org.springframework.scheduling.quartz.LocalDataSourceJobStore\n driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate\n tablePrefix: QRTZ_\n isClustered: true\n misfireThreshold: 12000\n clusterCheckinInterval: 15000\n threadPool:\n class: org.quartz.simpl.SimpleThreadPool\n threadCount: 10\n threadPriority: 5\n threadsInheritContextClassLoaderOfInitializingThread: true\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n aop:\n proxy-target-class: true\n activiti:\n check-process-definitions: false\n async-executor-activate: false\n job-executor-activate: false\n jpa:\n open-in-view: false\n freemarker:\n suffix: .ftl\n content-type: text/html\n charset: UTF-8\n cache: false\n prefer-file-system-access: false\n template-loader-path:\n - classpath:/templates\n mvc:\n static-path-pattern: /**\n pathmatch:\n matching-strategy: ant_path_matcher\n resource:\n static-locations: classpath:/static/,classpath:/public/\n autoconfigure:\n exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure\nmybatis-plus:\n mapper-locations: classpath*:org/jeecg/modules/**/xml/*Mapper.xml\n global-config:\n banner: false\n db-config:\n id-type: ASSIGN_ID\n table-underline: true\n configuration:\n call-setters-on-nulls: true', '2117a96ba08e8fd0f66825e87416af27', '2021-03-03 13:01:42', '2022-08-05 13:12:21', 'nacos', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', '', NULL);
INSERT INTO `config_info` VALUES (3, 'jeecg-gateway-router.json', 'DEFAULT_GROUP', '[{\n \"id\": \"jeecg-system\",\n \"order\": 0,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/sys/**\",\n \"_genkey_1\": \"/jmreport/**\",\n \"_genkey_3\": \"/online/**\",\n \"_genkey_4\": \"/generic/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb://jeecg-system\"\n}, {\n \"id\": \"jeecg-demo\",\n \"order\": 1,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/mock/**\",\n \"_genkey_1\": \"/test/**\",\n \"_genkey_2\": \"/bigscreen/template1/**\",\n \"_genkey_3\": \"/bigscreen/template2/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb://jeecg-demo\"\n}, {\n \"id\": \"jeecg-system-websocket\",\n \"order\": 2,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/websocket/**\",\n \"_genkey_1\": \"/newsWebsocket/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb:ws://jeecg-system\"\n}, {\n \"id\": \"jeecg-demo-websocket\",\n \"order\": 3,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/vxeSocket/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb:ws://jeecg-demo\"\n}]', 'be6548051d99309d7fa5ac4398404201', '2021-03-03 13:02:14', '2022-02-23 11:49:01', NULL, '0:0:0:0:0:0:0:1', '', '', '', '', '', 'json', '', NULL);
INSERT INTO `config_info` VALUES (11, 'jeecg-sharding.yaml', 'DEFAULT_GROUP', 'spring:\n shardingsphere:\n datasource:\n names: ds0\n ds0:\n driverClassName: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai\n username: root\n password: root\n type: com.alibaba.druid.pool.DruidDataSource\n props:\n sql-show: true\n rules:\n sharding:\n binding-tables: sys_log\n key-generators:\n snowflake:\n type: SNOWFLAKE\n props:\n worker-id: 123\n sharding-algorithms:\n table-classbased:\n props:\n strategy: standard\n algorithmClassName: org.jeecg.modules.test.sharding.algorithm.StandardModTableShardAlgorithm\n type: CLASS_BASED\n tables:\n sys_log:\n actual-data-nodes: ds0.sys_log$->{0..1}\n table-strategy:\n standard:\n sharding-algorithm-name: table-classbased\n sharding-column: log_type', 'a93fa455c32cd37ca84631d2bbe13005', '2022-04-13 03:12:28', '2022-08-07 13:13:57', 'nacos', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', '', NULL);
INSERT INTO `config_info` VALUES (20, 'jeecg-gateway-dev.yaml', 'DEFAULT_GROUP', 'jeecg:\n route:\n config:\n #type:database nacos yml\n data-type: database\n data-id: jeecg-gateway-router\nspring:\n redis:\n database: 0\n host: jeecg-boot-redis\n port: 6379\n password:', 'd65267ddfda1b0c0f4462606195d1a5a', '2022-08-04 16:36:11', '2023-04-17 06:05:15', 'nacos', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', '', NULL);
INSERT INTO `config_info` VALUES (22, 'jeecg-sharding-multi.yaml', 'DEFAULT_GROUP', 'spring:\n shardingsphere:\n datasource:\n names: ds0,ds1\n ds0:\n driverClassName: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai\n type: com.alibaba.druid.pool.DruidDataSource\n username: root\n password: root\n ds1:\n driverClassName: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot2?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai\n type: com.alibaba.druid.pool.DruidDataSource\n username: root\n password: root\n props:\n sql-show: true\n rules:\n replica-query:\n load-balancers:\n round-robin:\n type: ROUND_ROBIN\n props:\n default: 0\n data-sources:\n prds:\n primary-data-source-name: ds0\n replica-data-source-names: ds1\n load-balancer-name: round_robin\n sharding:\n binding-tables:\n - sys_log\n key-generators:\n snowflake:\n type: SNOWFLAKE\n props:\n worker-id: 123\n sharding-algorithms:\n table-classbased:\n props:\n strategy: standard\n algorithmClassName: org.jeecg.modules.test.sharding.algorithm.StandardModTableShardAlgorithm\n type: CLASS_BASED\n database-inline:\n type: INLINE\n props:\n algorithm-expression: ds$->{operate_type % 2}\n tables:\n sys_log:\n actual-data-nodes: ds$->{0..1}.sys_log$->{0..1}\n database-strategy:\n standard:\n sharding-column: operate_type\n sharding-algorithm-name: database-inline\n table-strategy:\n standard:\n sharding-algorithm-name: table-classbased\n sharding-column: log_type', '0fc2b030ca8c0008f148c84ecbd2a8c7', '2022-08-07 06:09:01', '2022-08-07 13:03:52', 'nacos', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', '', NULL);
INSERT INTO `config_info` VALUES (29, 'jeecg-dev.yaml', 'JEECGDEV_GROUP', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: jeecg-boot-es:9200\n check-enabled: false\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: true\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', '6c0ec1ace75d0341a1f83978c864c0b3', '2023-07-17 10:05:06', '2023-07-17 11:49:49', NULL, '0:0:0:0:0:0:0:1', '', 'ac14ab82-51f8-4f0c-aa5b-25fb8384bfb6', '', '', '', 'yaml', '', '');
INSERT INTO `config_info` VALUES (30, 'jeecg.yaml', 'JEECGDEV_GROUP', 'server:\n tomcat:\n max-swallow-size: -1\n error:\n include-exception: true\n include-stacktrace: ALWAYS\n include-message: ALWAYS\n compression:\n enabled: true\n min-response-size: 1024\n mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,image/*\nmanagement:\n health:\n mail:\n enabled: false\n endpoints:\n web:\n exposure:\n include: \"*\"\n health:\n sensitive: true\n endpoint:\n health:\n show-details: ALWAYS\nspring:\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n mail:\n host: smtp.163.com\n username: jeecgos@163.com\n password: ??\n properties:\n mail:\n smtp:\n auth: true\n starttls:\n enable: true\n required: true\n quartz:\n job-store-type: jdbc\n initialize-schema: embedded\n auto-startup: false\n startup-delay: 1s\n overwrite-existing-jobs: true\n properties:\n org:\n quartz:\n scheduler:\n instanceName: MyScheduler\n instanceId: AUTO\n jobStore:\n class: org.springframework.scheduling.quartz.LocalDataSourceJobStore\n driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate\n tablePrefix: QRTZ_\n isClustered: true\n misfireThreshold: 12000\n clusterCheckinInterval: 15000\n threadPool:\n class: org.quartz.simpl.SimpleThreadPool\n threadCount: 10\n threadPriority: 5\n threadsInheritContextClassLoaderOfInitializingThread: true\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n aop:\n proxy-target-class: true\n activiti:\n check-process-definitions: false\n async-executor-activate: false\n job-executor-activate: false\n jpa:\n open-in-view: false\n freemarker:\n suffix: .ftl\n content-type: text/html\n charset: UTF-8\n cache: false\n prefer-file-system-access: false\n template-loader-path:\n - classpath:/templates\n mvc:\n static-path-pattern: /**\n pathmatch:\n matching-strategy: ant_path_matcher\n resource:\n static-locations: classpath:/static/,classpath:/public/\n autoconfigure:\n exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure\nmybatis-plus:\n mapper-locations: classpath*:org/jeecg/modules/**/xml/*Mapper.xml\n global-config:\n banner: false\n db-config:\n id-type: ASSIGN_ID\n table-underline: true\n configuration:\n call-setters-on-nulls: true', '2117a96ba08e8fd0f66825e87416af27', '2023-07-17 10:05:06', '2023-07-17 10:05:06', NULL, '0:0:0:0:0:0:0:1', '', 'ac14ab82-51f8-4f0c-aa5b-25fb8384bfb6', '', NULL, NULL, 'yaml', NULL, '');
INSERT INTO `config_info` VALUES (31, 'jeecg-gateway-router.json', 'JEECGDEV_GROUP', '[{\n \"id\": \"jeecg-system\",\n \"order\": 0,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/sys/**\",\n \"_genkey_1\": \"/jmreport/**\",\n \"_genkey_3\": \"/online/**\",\n \"_genkey_4\": \"/generic/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb://jeecg-system\"\n}, {\n \"id\": \"jeecg-demo\",\n \"order\": 1,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/mock/**\",\n \"_genkey_1\": \"/test/**\",\n \"_genkey_2\": \"/bigscreen/template1/**\",\n \"_genkey_3\": \"/bigscreen/template2/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb://jeecg-demo\"\n}, {\n \"id\": \"jeecg-system-websocket\",\n \"order\": 2,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/websocket/**\",\n \"_genkey_1\": \"/newsWebsocket/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb:ws://jeecg-system\"\n}, {\n \"id\": \"jeecg-demo-websocket\",\n \"order\": 3,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/vxeSocket/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb:ws://jeecg-demo\"\n}]', 'be6548051d99309d7fa5ac4398404201', '2023-07-17 10:05:06', '2023-07-17 10:05:06', NULL, '0:0:0:0:0:0:0:1', '', 'ac14ab82-51f8-4f0c-aa5b-25fb8384bfb6', '', NULL, NULL, 'json', NULL, '');
INSERT INTO `config_info` VALUES (32, 'jeecg-sharding.yaml', 'JEECGDEV_GROUP', 'spring:\n shardingsphere:\n datasource:\n names: ds0\n ds0:\n driverClassName: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai\n username: root\n password: root\n type: com.alibaba.druid.pool.DruidDataSource\n props:\n sql-show: true\n rules:\n sharding:\n binding-tables: sys_log\n key-generators:\n snowflake:\n type: SNOWFLAKE\n props:\n worker-id: 123\n sharding-algorithms:\n table-classbased:\n props:\n strategy: standard\n algorithmClassName: org.jeecg.modules.test.sharding.algorithm.StandardModTableShardAlgorithm\n type: CLASS_BASED\n tables:\n sys_log:\n actual-data-nodes: ds0.sys_log$->{0..1}\n table-strategy:\n standard:\n sharding-algorithm-name: table-classbased\n sharding-column: log_type', 'a93fa455c32cd37ca84631d2bbe13005', '2023-07-17 10:05:06', '2023-07-17 10:05:06', NULL, '0:0:0:0:0:0:0:1', '', 'ac14ab82-51f8-4f0c-aa5b-25fb8384bfb6', '', NULL, NULL, 'yaml', NULL, '');
INSERT INTO `config_info` VALUES (33, 'jeecg-gateway-dev.yaml', 'JEECGDEV_GROUP', 'jeecg:\n route:\n config:\n #type:database nacos yml\n data-type: nacos\n data-id: jeecg-gateway-router\nspring:\n redis:\n database: 0\n host: jeecg-boot-redis\n port: 6379\n password:', 'eeb45ae799de89f4d789139de7a7d12d', '2023-07-17 10:05:06', '2023-07-17 11:49:21', NULL, '0:0:0:0:0:0:0:1', '', 'ac14ab82-51f8-4f0c-aa5b-25fb8384bfb6', '', '', '', 'yaml', '', '');
INSERT INTO `config_info` VALUES (34, 'jeecg-sharding-multi.yaml', 'JEECGDEV_GROUP', 'spring:\n shardingsphere:\n datasource:\n names: ds0,ds1\n ds0:\n driverClassName: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai\n type: com.alibaba.druid.pool.DruidDataSource\n username: root\n password: root\n ds1:\n driverClassName: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot2?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai\n type: com.alibaba.druid.pool.DruidDataSource\n username: root\n password: root\n props:\n sql-show: true\n rules:\n replica-query:\n load-balancers:\n round-robin:\n type: ROUND_ROBIN\n props:\n default: 0\n data-sources:\n prds:\n primary-data-source-name: ds0\n replica-data-source-names: ds1\n load-balancer-name: round_robin\n sharding:\n binding-tables:\n - sys_log\n key-generators:\n snowflake:\n type: SNOWFLAKE\n props:\n worker-id: 123\n sharding-algorithms:\n table-classbased:\n props:\n strategy: standard\n algorithmClassName: org.jeecg.modules.test.sharding.algorithm.StandardModTableShardAlgorithm\n type: CLASS_BASED\n database-inline:\n type: INLINE\n props:\n algorithm-expression: ds$->{operate_type % 2}\n tables:\n sys_log:\n actual-data-nodes: ds$->{0..1}.sys_log$->{0..1}\n database-strategy:\n standard:\n sharding-column: operate_type\n sharding-algorithm-name: database-inline\n table-strategy:\n standard:\n sharding-algorithm-name: table-classbased\n sharding-column: log_type', '0fc2b030ca8c0008f148c84ecbd2a8c7', '2023-07-17 10:05:06', '2023-07-17 10:05:06', NULL, '0:0:0:0:0:0:0:1', '', 'ac14ab82-51f8-4f0c-aa5b-25fb8384bfb6', '', NULL, NULL, 'yaml', NULL, '');
-- ----------------------------
-- Table structure for config_info_aggr
-- ----------------------------
DROP TABLE IF EXISTS `config_info_aggr`;
CREATE TABLE `config_info_aggr` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id',
`group_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'group_id',
`datum_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'datum_id',
`content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '内容',
`gmt_modified` datetime NOT NULL COMMENT '修改时间',
`app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
`tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT '租户字段',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_configinfoaggr_datagrouptenantdatum`(`data_id`, `group_id`, `tenant_id`, `datum_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '增加租户字段' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of config_info_aggr
-- ----------------------------
-- ----------------------------
-- Table structure for config_info_beta
-- ----------------------------
DROP TABLE IF EXISTS `config_info_beta`;
CREATE TABLE `config_info_beta` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id',
`group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'group_id',
`app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'app_name',
`content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'content',
`beta_ips` varchar(1024) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'betaIps',
`md5` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
`src_user` text CHARACTER SET utf8 COLLATE utf8_bin NULL COMMENT 'source user',
`src_ip` varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'source ip',
`tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT '租户字段',
`encrypted_data_key` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '加密key',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_configinfobeta_datagrouptenant`(`data_id`, `group_id`, `tenant_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'config_info_beta' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of config_info_beta
-- ----------------------------
-- ----------------------------
-- Table structure for config_info_tag
-- ----------------------------
DROP TABLE IF EXISTS `config_info_tag`;
CREATE TABLE `config_info_tag` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id',
`group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'group_id',
`tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT 'tenant_id',
`tag_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'tag_id',
`app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'app_name',
`content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'content',
`md5` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
`src_user` text CHARACTER SET utf8 COLLATE utf8_bin NULL COMMENT 'source user',
`src_ip` varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'source ip',
`encrypted_data_key` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '加密key',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_configinfotag_datagrouptenanttag`(`data_id`, `group_id`, `tenant_id`, `tag_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'config_info_tag' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of config_info_tag
-- ----------------------------
-- ----------------------------
-- Table structure for config_tags_relation
-- ----------------------------
DROP TABLE IF EXISTS `config_tags_relation`;
CREATE TABLE `config_tags_relation` (
`id` bigint(20) NOT NULL COMMENT 'id',
`tag_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'tag_name',
`tag_type` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'tag_type',
`data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id',
`group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'group_id',
`tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT 'tenant_id',
`nid` bigint(20) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`nid`) USING BTREE,
UNIQUE INDEX `uk_configtagrelation_configidtag`(`id`, `tag_name`, `tag_type`) USING BTREE,
INDEX `idx_tenant_id`(`tenant_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'config_tag_relation' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of config_tags_relation
-- ----------------------------
-- ----------------------------
-- Table structure for group_capacity
-- ----------------------------
DROP TABLE IF EXISTS `group_capacity`;
CREATE TABLE `group_capacity` (
`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'Group ID空字符表示整个集群',
`quota` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '配额0表示使用默认值',
`usage` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '使用量',
`max_size` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '单个配置大小上限单位为字节0表示使用默认值',
`max_aggr_count` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '聚合子配置最大个数0表示使用默认值',
`max_aggr_size` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '单个聚合数据的子配置大小上限单位为字节0表示使用默认值',
`max_history_count` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '最大变更历史数量',
`gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_group_id`(`group_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '集群各Group容量信息表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of group_capacity
-- ----------------------------
-- ----------------------------
-- Table structure for his_config_info
-- ----------------------------
DROP TABLE IF EXISTS `his_config_info`;
CREATE TABLE `his_config_info` (
`id` bigint(20) UNSIGNED NOT NULL,
`nid` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'app_name',
`content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`md5` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
`gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00',
`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00',
`src_user` text CHARACTER SET utf8 COLLATE utf8_bin NULL,
`src_ip` varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
`op_type` char(10) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
`tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT '租户字段',
`encrypted_data_key` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '加密key',
PRIMARY KEY (`nid`) USING BTREE,
INDEX `idx_gmt_create`(`gmt_create`) USING BTREE,
INDEX `idx_gmt_modified`(`gmt_modified`) USING BTREE,
INDEX `idx_did`(`data_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 34 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '多租户改造' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of his_config_info
-- ----------------------------
INSERT INTO `his_config_info` VALUES (1, 6, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: jeecg-boot-es:9200\n check-enabled: false\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: true\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', '6c0ec1ace75d0341a1f83978c864c0b3', '2010-05-05 00:00:00', '2023-07-14 10:42:27', NULL, '192.168.1.129', 'U', '', '');
INSERT INTO `his_config_info` VALUES (1, 7, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: jeecg-boot-es:9200\n check-enabled: false\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: true\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', '6c0ec1ace75d0341a1f83978c864c0b3', '2010-05-05 00:00:00', '2023-07-14 10:42:39', NULL, '192.168.1.129', 'U', '', '');
INSERT INTO `his_config_info` VALUES (1, 8, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot1?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: jeecg-boot-es:9200\n check-enabled: false\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: true\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', 'fea50747d3417741908a32f02f10e304', '2010-05-05 00:00:00', '2023-07-14 10:43:33', NULL, '192.168.1.129', 'U', '', '');
INSERT INTO `his_config_info` VALUES (0, 9, 'jeecg-dev.yaml', 'JEECGDEV_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: jeecg-boot-es:9200\n check-enabled: false\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: true\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', '6c0ec1ace75d0341a1f83978c864c0b3', '2010-05-05 00:00:00', '2023-07-17 09:50:49', NULL, '0:0:0:0:0:0:0:1', 'I', '', '');
INSERT INTO `his_config_info` VALUES (0, 10, 'jeecg.yaml', 'JEECGDEV_GROUP', '', 'server:\n tomcat:\n max-swallow-size: -1\n error:\n include-exception: true\n include-stacktrace: ALWAYS\n include-message: ALWAYS\n compression:\n enabled: true\n min-response-size: 1024\n mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,image/*\nmanagement:\n health:\n mail:\n enabled: false\n endpoints:\n web:\n exposure:\n include: \"*\"\n health:\n sensitive: true\n endpoint:\n health:\n show-details: ALWAYS\nspring:\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n mail:\n host: smtp.163.com\n username: jeecgos@163.com\n password: ??\n properties:\n mail:\n smtp:\n auth: true\n starttls:\n enable: true\n required: true\n quartz:\n job-store-type: jdbc\n initialize-schema: embedded\n auto-startup: false\n startup-delay: 1s\n overwrite-existing-jobs: true\n properties:\n org:\n quartz:\n scheduler:\n instanceName: MyScheduler\n instanceId: AUTO\n jobStore:\n class: org.springframework.scheduling.quartz.LocalDataSourceJobStore\n driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate\n tablePrefix: QRTZ_\n isClustered: true\n misfireThreshold: 12000\n clusterCheckinInterval: 15000\n threadPool:\n class: org.quartz.simpl.SimpleThreadPool\n threadCount: 10\n threadPriority: 5\n threadsInheritContextClassLoaderOfInitializingThread: true\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n aop:\n proxy-target-class: true\n activiti:\n check-process-definitions: false\n async-executor-activate: false\n job-executor-activate: false\n jpa:\n open-in-view: false\n freemarker:\n suffix: .ftl\n content-type: text/html\n charset: UTF-8\n cache: false\n prefer-file-system-access: false\n template-loader-path:\n - classpath:/templates\n mvc:\n static-path-pattern: /**\n pathmatch:\n matching-strategy: ant_path_matcher\n resource:\n static-locations: classpath:/static/,classpath:/public/\n autoconfigure:\n exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure\nmybatis-plus:\n mapper-locations: classpath*:org/jeecg/modules/**/xml/*Mapper.xml\n global-config:\n banner: false\n db-config:\n id-type: ASSIGN_ID\n table-underline: true\n configuration:\n call-setters-on-nulls: true', '2117a96ba08e8fd0f66825e87416af27', '2010-05-05 00:00:00', '2023-07-17 09:50:49', NULL, '0:0:0:0:0:0:0:1', 'I', '', '');
INSERT INTO `his_config_info` VALUES (0, 11, 'jeecg-gateway-router.json', 'JEECGDEV_GROUP', '', '[{\n \"id\": \"jeecg-system\",\n \"order\": 0,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/sys/**\",\n \"_genkey_1\": \"/jmreport/**\",\n \"_genkey_3\": \"/online/**\",\n \"_genkey_4\": \"/generic/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb://jeecg-system\"\n}, {\n \"id\": \"jeecg-demo\",\n \"order\": 1,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/mock/**\",\n \"_genkey_1\": \"/test/**\",\n \"_genkey_2\": \"/bigscreen/template1/**\",\n \"_genkey_3\": \"/bigscreen/template2/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb://jeecg-demo\"\n}, {\n \"id\": \"jeecg-system-websocket\",\n \"order\": 2,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/websocket/**\",\n \"_genkey_1\": \"/newsWebsocket/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb:ws://jeecg-system\"\n}, {\n \"id\": \"jeecg-demo-websocket\",\n \"order\": 3,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/vxeSocket/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb:ws://jeecg-demo\"\n}]', 'be6548051d99309d7fa5ac4398404201', '2010-05-05 00:00:00', '2023-07-17 09:50:49', NULL, '0:0:0:0:0:0:0:1', 'I', '', '');
INSERT INTO `his_config_info` VALUES (0, 12, 'jeecg-sharding.yaml', 'JEECGDEV_GROUP', '', 'spring:\n shardingsphere:\n datasource:\n names: ds0\n ds0:\n driverClassName: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai\n username: root\n password: root\n type: com.alibaba.druid.pool.DruidDataSource\n props:\n sql-show: true\n rules:\n sharding:\n binding-tables: sys_log\n key-generators:\n snowflake:\n type: SNOWFLAKE\n props:\n worker-id: 123\n sharding-algorithms:\n table-classbased:\n props:\n strategy: standard\n algorithmClassName: org.jeecg.modules.test.sharding.algorithm.StandardModTableShardAlgorithm\n type: CLASS_BASED\n tables:\n sys_log:\n actual-data-nodes: ds0.sys_log$->{0..1}\n table-strategy:\n standard:\n sharding-algorithm-name: table-classbased\n sharding-column: log_type', 'a93fa455c32cd37ca84631d2bbe13005', '2010-05-05 00:00:00', '2023-07-17 09:50:49', NULL, '0:0:0:0:0:0:0:1', 'I', '', '');
INSERT INTO `his_config_info` VALUES (0, 13, 'jeecg-gateway-dev.yaml', 'JEECGDEV_GROUP', '', 'jeecg:\n route:\n config:\n #type:database nacos yml\n data-type: database\n data-id: jeecg-gateway-router\nspring:\n redis:\n database: 0\n host: jeecg-boot-redis\n port: 6379\n password:', 'd65267ddfda1b0c0f4462606195d1a5a', '2010-05-05 00:00:00', '2023-07-17 09:50:49', NULL, '0:0:0:0:0:0:0:1', 'I', '', '');
INSERT INTO `his_config_info` VALUES (0, 14, 'jeecg-sharding-multi.yaml', 'JEECGDEV_GROUP', '', 'spring:\n shardingsphere:\n datasource:\n names: ds0,ds1\n ds0:\n driverClassName: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai\n type: com.alibaba.druid.pool.DruidDataSource\n username: root\n password: root\n ds1:\n driverClassName: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot2?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai\n type: com.alibaba.druid.pool.DruidDataSource\n username: root\n password: root\n props:\n sql-show: true\n rules:\n replica-query:\n load-balancers:\n round-robin:\n type: ROUND_ROBIN\n props:\n default: 0\n data-sources:\n prds:\n primary-data-source-name: ds0\n replica-data-source-names: ds1\n load-balancer-name: round_robin\n sharding:\n binding-tables:\n - sys_log\n key-generators:\n snowflake:\n type: SNOWFLAKE\n props:\n worker-id: 123\n sharding-algorithms:\n table-classbased:\n props:\n strategy: standard\n algorithmClassName: org.jeecg.modules.test.sharding.algorithm.StandardModTableShardAlgorithm\n type: CLASS_BASED\n database-inline:\n type: INLINE\n props:\n algorithm-expression: ds$->{operate_type % 2}\n tables:\n sys_log:\n actual-data-nodes: ds$->{0..1}.sys_log$->{0..1}\n database-strategy:\n standard:\n sharding-column: operate_type\n sharding-algorithm-name: database-inline\n table-strategy:\n standard:\n sharding-algorithm-name: table-classbased\n sharding-column: log_type', '0fc2b030ca8c0008f148c84ecbd2a8c7', '2010-05-05 00:00:00', '2023-07-17 09:50:49', NULL, '0:0:0:0:0:0:0:1', 'I', '', '');
INSERT INTO `his_config_info` VALUES (0, 15, 'jeecg-dev.yaml', 'JEECGDEV_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: jeecg-boot-es:9200\n check-enabled: false\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: true\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', '6c0ec1ace75d0341a1f83978c864c0b3', '2010-05-05 00:00:00', '2023-07-17 10:05:06', NULL, '0:0:0:0:0:0:0:1', 'I', 'ac14ab82-51f8-4f0c-aa5b-25fb8384bfb6', '');
INSERT INTO `his_config_info` VALUES (0, 16, 'jeecg.yaml', 'JEECGDEV_GROUP', '', 'server:\n tomcat:\n max-swallow-size: -1\n error:\n include-exception: true\n include-stacktrace: ALWAYS\n include-message: ALWAYS\n compression:\n enabled: true\n min-response-size: 1024\n mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,image/*\nmanagement:\n health:\n mail:\n enabled: false\n endpoints:\n web:\n exposure:\n include: \"*\"\n health:\n sensitive: true\n endpoint:\n health:\n show-details: ALWAYS\nspring:\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n mail:\n host: smtp.163.com\n username: jeecgos@163.com\n password: ??\n properties:\n mail:\n smtp:\n auth: true\n starttls:\n enable: true\n required: true\n quartz:\n job-store-type: jdbc\n initialize-schema: embedded\n auto-startup: false\n startup-delay: 1s\n overwrite-existing-jobs: true\n properties:\n org:\n quartz:\n scheduler:\n instanceName: MyScheduler\n instanceId: AUTO\n jobStore:\n class: org.springframework.scheduling.quartz.LocalDataSourceJobStore\n driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate\n tablePrefix: QRTZ_\n isClustered: true\n misfireThreshold: 12000\n clusterCheckinInterval: 15000\n threadPool:\n class: org.quartz.simpl.SimpleThreadPool\n threadCount: 10\n threadPriority: 5\n threadsInheritContextClassLoaderOfInitializingThread: true\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n aop:\n proxy-target-class: true\n activiti:\n check-process-definitions: false\n async-executor-activate: false\n job-executor-activate: false\n jpa:\n open-in-view: false\n freemarker:\n suffix: .ftl\n content-type: text/html\n charset: UTF-8\n cache: false\n prefer-file-system-access: false\n template-loader-path:\n - classpath:/templates\n mvc:\n static-path-pattern: /**\n pathmatch:\n matching-strategy: ant_path_matcher\n resource:\n static-locations: classpath:/static/,classpath:/public/\n autoconfigure:\n exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure\nmybatis-plus:\n mapper-locations: classpath*:org/jeecg/modules/**/xml/*Mapper.xml\n global-config:\n banner: false\n db-config:\n id-type: ASSIGN_ID\n table-underline: true\n configuration:\n call-setters-on-nulls: true', '2117a96ba08e8fd0f66825e87416af27', '2010-05-05 00:00:00', '2023-07-17 10:05:06', NULL, '0:0:0:0:0:0:0:1', 'I', 'ac14ab82-51f8-4f0c-aa5b-25fb8384bfb6', '');
INSERT INTO `his_config_info` VALUES (0, 17, 'jeecg-gateway-router.json', 'JEECGDEV_GROUP', '', '[{\n \"id\": \"jeecg-system\",\n \"order\": 0,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/sys/**\",\n \"_genkey_1\": \"/jmreport/**\",\n \"_genkey_3\": \"/online/**\",\n \"_genkey_4\": \"/generic/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb://jeecg-system\"\n}, {\n \"id\": \"jeecg-demo\",\n \"order\": 1,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/mock/**\",\n \"_genkey_1\": \"/test/**\",\n \"_genkey_2\": \"/bigscreen/template1/**\",\n \"_genkey_3\": \"/bigscreen/template2/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb://jeecg-demo\"\n}, {\n \"id\": \"jeecg-system-websocket\",\n \"order\": 2,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/websocket/**\",\n \"_genkey_1\": \"/newsWebsocket/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb:ws://jeecg-system\"\n}, {\n \"id\": \"jeecg-demo-websocket\",\n \"order\": 3,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/vxeSocket/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb:ws://jeecg-demo\"\n}]', 'be6548051d99309d7fa5ac4398404201', '2010-05-05 00:00:00', '2023-07-17 10:05:06', NULL, '0:0:0:0:0:0:0:1', 'I', 'ac14ab82-51f8-4f0c-aa5b-25fb8384bfb6', '');
INSERT INTO `his_config_info` VALUES (0, 18, 'jeecg-sharding.yaml', 'JEECGDEV_GROUP', '', 'spring:\n shardingsphere:\n datasource:\n names: ds0\n ds0:\n driverClassName: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai\n username: root\n password: root\n type: com.alibaba.druid.pool.DruidDataSource\n props:\n sql-show: true\n rules:\n sharding:\n binding-tables: sys_log\n key-generators:\n snowflake:\n type: SNOWFLAKE\n props:\n worker-id: 123\n sharding-algorithms:\n table-classbased:\n props:\n strategy: standard\n algorithmClassName: org.jeecg.modules.test.sharding.algorithm.StandardModTableShardAlgorithm\n type: CLASS_BASED\n tables:\n sys_log:\n actual-data-nodes: ds0.sys_log$->{0..1}\n table-strategy:\n standard:\n sharding-algorithm-name: table-classbased\n sharding-column: log_type', 'a93fa455c32cd37ca84631d2bbe13005', '2010-05-05 00:00:00', '2023-07-17 10:05:06', NULL, '0:0:0:0:0:0:0:1', 'I', 'ac14ab82-51f8-4f0c-aa5b-25fb8384bfb6', '');
INSERT INTO `his_config_info` VALUES (0, 19, 'jeecg-gateway-dev.yaml', 'JEECGDEV_GROUP', '', 'jeecg:\n route:\n config:\n #type:database nacos yml\n data-type: database\n data-id: jeecg-gateway-router\nspring:\n redis:\n database: 0\n host: jeecg-boot-redis\n port: 6379\n password:', 'd65267ddfda1b0c0f4462606195d1a5a', '2010-05-05 00:00:00', '2023-07-17 10:05:06', NULL, '0:0:0:0:0:0:0:1', 'I', 'ac14ab82-51f8-4f0c-aa5b-25fb8384bfb6', '');
INSERT INTO `his_config_info` VALUES (0, 20, 'jeecg-sharding-multi.yaml', 'JEECGDEV_GROUP', '', 'spring:\n shardingsphere:\n datasource:\n names: ds0,ds1\n ds0:\n driverClassName: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai\n type: com.alibaba.druid.pool.DruidDataSource\n username: root\n password: root\n ds1:\n driverClassName: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot2?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai\n type: com.alibaba.druid.pool.DruidDataSource\n username: root\n password: root\n props:\n sql-show: true\n rules:\n replica-query:\n load-balancers:\n round-robin:\n type: ROUND_ROBIN\n props:\n default: 0\n data-sources:\n prds:\n primary-data-source-name: ds0\n replica-data-source-names: ds1\n load-balancer-name: round_robin\n sharding:\n binding-tables:\n - sys_log\n key-generators:\n snowflake:\n type: SNOWFLAKE\n props:\n worker-id: 123\n sharding-algorithms:\n table-classbased:\n props:\n strategy: standard\n algorithmClassName: org.jeecg.modules.test.sharding.algorithm.StandardModTableShardAlgorithm\n type: CLASS_BASED\n database-inline:\n type: INLINE\n props:\n algorithm-expression: ds$->{operate_type % 2}\n tables:\n sys_log:\n actual-data-nodes: ds$->{0..1}.sys_log$->{0..1}\n database-strategy:\n standard:\n sharding-column: operate_type\n sharding-algorithm-name: database-inline\n table-strategy:\n standard:\n sharding-algorithm-name: table-classbased\n sharding-column: log_type', '0fc2b030ca8c0008f148c84ecbd2a8c7', '2010-05-05 00:00:00', '2023-07-17 10:05:06', NULL, '0:0:0:0:0:0:0:1', 'I', 'ac14ab82-51f8-4f0c-aa5b-25fb8384bfb6', '');
INSERT INTO `his_config_info` VALUES (23, 21, 'jeecg-dev.yaml', 'JEECGDEV_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: jeecg-boot-es:9200\n check-enabled: false\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: true\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', '6c0ec1ace75d0341a1f83978c864c0b3', '2010-05-05 00:00:00', '2023-07-17 10:05:38', NULL, '0:0:0:0:0:0:0:1', 'D', '', '');
INSERT INTO `his_config_info` VALUES (24, 22, 'jeecg.yaml', 'JEECGDEV_GROUP', '', 'server:\n tomcat:\n max-swallow-size: -1\n error:\n include-exception: true\n include-stacktrace: ALWAYS\n include-message: ALWAYS\n compression:\n enabled: true\n min-response-size: 1024\n mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,image/*\nmanagement:\n health:\n mail:\n enabled: false\n endpoints:\n web:\n exposure:\n include: \"*\"\n health:\n sensitive: true\n endpoint:\n health:\n show-details: ALWAYS\nspring:\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n mail:\n host: smtp.163.com\n username: jeecgos@163.com\n password: ??\n properties:\n mail:\n smtp:\n auth: true\n starttls:\n enable: true\n required: true\n quartz:\n job-store-type: jdbc\n initialize-schema: embedded\n auto-startup: false\n startup-delay: 1s\n overwrite-existing-jobs: true\n properties:\n org:\n quartz:\n scheduler:\n instanceName: MyScheduler\n instanceId: AUTO\n jobStore:\n class: org.springframework.scheduling.quartz.LocalDataSourceJobStore\n driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate\n tablePrefix: QRTZ_\n isClustered: true\n misfireThreshold: 12000\n clusterCheckinInterval: 15000\n threadPool:\n class: org.quartz.simpl.SimpleThreadPool\n threadCount: 10\n threadPriority: 5\n threadsInheritContextClassLoaderOfInitializingThread: true\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n aop:\n proxy-target-class: true\n activiti:\n check-process-definitions: false\n async-executor-activate: false\n job-executor-activate: false\n jpa:\n open-in-view: false\n freemarker:\n suffix: .ftl\n content-type: text/html\n charset: UTF-8\n cache: false\n prefer-file-system-access: false\n template-loader-path:\n - classpath:/templates\n mvc:\n static-path-pattern: /**\n pathmatch:\n matching-strategy: ant_path_matcher\n resource:\n static-locations: classpath:/static/,classpath:/public/\n autoconfigure:\n exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure\nmybatis-plus:\n mapper-locations: classpath*:org/jeecg/modules/**/xml/*Mapper.xml\n global-config:\n banner: false\n db-config:\n id-type: ASSIGN_ID\n table-underline: true\n configuration:\n call-setters-on-nulls: true', '2117a96ba08e8fd0f66825e87416af27', '2010-05-05 00:00:00', '2023-07-17 10:05:38', NULL, '0:0:0:0:0:0:0:1', 'D', '', '');
INSERT INTO `his_config_info` VALUES (25, 23, 'jeecg-gateway-router.json', 'JEECGDEV_GROUP', '', '[{\n \"id\": \"jeecg-system\",\n \"order\": 0,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/sys/**\",\n \"_genkey_1\": \"/jmreport/**\",\n \"_genkey_3\": \"/online/**\",\n \"_genkey_4\": \"/generic/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb://jeecg-system\"\n}, {\n \"id\": \"jeecg-demo\",\n \"order\": 1,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/mock/**\",\n \"_genkey_1\": \"/test/**\",\n \"_genkey_2\": \"/bigscreen/template1/**\",\n \"_genkey_3\": \"/bigscreen/template2/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb://jeecg-demo\"\n}, {\n \"id\": \"jeecg-system-websocket\",\n \"order\": 2,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/websocket/**\",\n \"_genkey_1\": \"/newsWebsocket/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb:ws://jeecg-system\"\n}, {\n \"id\": \"jeecg-demo-websocket\",\n \"order\": 3,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/vxeSocket/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb:ws://jeecg-demo\"\n}]', 'be6548051d99309d7fa5ac4398404201', '2010-05-05 00:00:00', '2023-07-17 10:05:38', NULL, '0:0:0:0:0:0:0:1', 'D', '', '');
INSERT INTO `his_config_info` VALUES (26, 24, 'jeecg-sharding.yaml', 'JEECGDEV_GROUP', '', 'spring:\n shardingsphere:\n datasource:\n names: ds0\n ds0:\n driverClassName: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai\n username: root\n password: root\n type: com.alibaba.druid.pool.DruidDataSource\n props:\n sql-show: true\n rules:\n sharding:\n binding-tables: sys_log\n key-generators:\n snowflake:\n type: SNOWFLAKE\n props:\n worker-id: 123\n sharding-algorithms:\n table-classbased:\n props:\n strategy: standard\n algorithmClassName: org.jeecg.modules.test.sharding.algorithm.StandardModTableShardAlgorithm\n type: CLASS_BASED\n tables:\n sys_log:\n actual-data-nodes: ds0.sys_log$->{0..1}\n table-strategy:\n standard:\n sharding-algorithm-name: table-classbased\n sharding-column: log_type', 'a93fa455c32cd37ca84631d2bbe13005', '2010-05-05 00:00:00', '2023-07-17 10:05:38', NULL, '0:0:0:0:0:0:0:1', 'D', '', '');
INSERT INTO `his_config_info` VALUES (27, 25, 'jeecg-gateway-dev.yaml', 'JEECGDEV_GROUP', '', 'jeecg:\n route:\n config:\n #type:database nacos yml\n data-type: database\n data-id: jeecg-gateway-router\nspring:\n redis:\n database: 0\n host: jeecg-boot-redis\n port: 6379\n password:', 'd65267ddfda1b0c0f4462606195d1a5a', '2010-05-05 00:00:00', '2023-07-17 10:05:38', NULL, '0:0:0:0:0:0:0:1', 'D', '', '');
INSERT INTO `his_config_info` VALUES (28, 26, 'jeecg-sharding-multi.yaml', 'JEECGDEV_GROUP', '', 'spring:\n shardingsphere:\n datasource:\n names: ds0,ds1\n ds0:\n driverClassName: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai\n type: com.alibaba.druid.pool.DruidDataSource\n username: root\n password: root\n ds1:\n driverClassName: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot2?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai\n type: com.alibaba.druid.pool.DruidDataSource\n username: root\n password: root\n props:\n sql-show: true\n rules:\n replica-query:\n load-balancers:\n round-robin:\n type: ROUND_ROBIN\n props:\n default: 0\n data-sources:\n prds:\n primary-data-source-name: ds0\n replica-data-source-names: ds1\n load-balancer-name: round_robin\n sharding:\n binding-tables:\n - sys_log\n key-generators:\n snowflake:\n type: SNOWFLAKE\n props:\n worker-id: 123\n sharding-algorithms:\n table-classbased:\n props:\n strategy: standard\n algorithmClassName: org.jeecg.modules.test.sharding.algorithm.StandardModTableShardAlgorithm\n type: CLASS_BASED\n database-inline:\n type: INLINE\n props:\n algorithm-expression: ds$->{operate_type % 2}\n tables:\n sys_log:\n actual-data-nodes: ds$->{0..1}.sys_log$->{0..1}\n database-strategy:\n standard:\n sharding-column: operate_type\n sharding-algorithm-name: database-inline\n table-strategy:\n standard:\n sharding-algorithm-name: table-classbased\n sharding-column: log_type', '0fc2b030ca8c0008f148c84ecbd2a8c7', '2010-05-05 00:00:00', '2023-07-17 10:05:38', NULL, '0:0:0:0:0:0:0:1', 'D', '', '');
INSERT INTO `his_config_info` VALUES (33, 27, 'jeecg-gateway-dev.yaml', 'JEECGDEV_GROUP', '', 'jeecg:\n route:\n config:\n #type:database nacos yml\n data-type: database\n data-id: jeecg-gateway-router\nspring:\n redis:\n database: 0\n host: jeecg-boot-redis\n port: 6379\n password:', 'd65267ddfda1b0c0f4462606195d1a5a', '2010-05-05 00:00:00', '2023-07-17 10:30:23', 'nacos', '192.168.1.129', 'U', 'ac14ab82-51f8-4f0c-aa5b-25fb8384bfb6', '');
INSERT INTO `his_config_info` VALUES (1, 28, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: jeecg-boot-es:9200\n check-enabled: false\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: true\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', '6c0ec1ace75d0341a1f83978c864c0b3', '2010-05-05 00:00:00', '2023-07-17 10:34:30', 'nacos', '192.168.1.129', 'U', '', '');
INSERT INTO `his_config_info` VALUES (1, 29, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: jeecg-boot-es:9200\n check-enabled: false\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', 'edb0e79d570edf341755caf3853f11e4', '2010-05-05 00:00:00', '2023-07-17 10:34:57', 'nacos', '192.168.1.129', 'U', '', '');
INSERT INTO `his_config_info` VALUES (33, 30, 'jeecg-gateway-dev.yaml', 'JEECGDEV_GROUP', '', 'jeecg:\n route:\n config:\n #type:database nacos yml\n data-type: nacos\n data-id: jeecg-gateway-router\nspring:\n redis:\n database: 0\n host: jeecg-boot-redis\n port: 6379\n password:', 'eeb45ae799de89f4d789139de7a7d12d', '2010-05-05 00:00:00', '2023-07-17 11:21:25', 'nacos', '192.168.1.129', 'U', 'ac14ab82-51f8-4f0c-aa5b-25fb8384bfb6', '');
INSERT INTO `his_config_info` VALUES (29, 31, 'jeecg-dev.yaml', 'JEECGDEV_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: jeecg-boot-es:9200\n check-enabled: false\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: true\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', '6c0ec1ace75d0341a1f83978c864c0b3', '2010-05-05 00:00:00', '2023-07-17 11:21:54', 'nacos', '192.168.1.129', 'U', 'ac14ab82-51f8-4f0c-aa5b-25fb8384bfb6', '');
INSERT INTO `his_config_info` VALUES (33, 32, 'jeecg-gateway-dev.yaml', 'JEECGDEV_GROUP', '', 'jeecg:\n route:\n config:\n #type:database nacos yml\n data-type: database\n data-id: jeecg-gateway-router\nspring:\n redis:\n database: 0\n host: jeecg-boot-redis\n port: 6379\n password:', 'd65267ddfda1b0c0f4462606195d1a5a', '2010-05-05 00:00:00', '2023-07-17 11:49:21', NULL, '0:0:0:0:0:0:0:1', 'U', 'ac14ab82-51f8-4f0c-aa5b-25fb8384bfb6', '');
INSERT INTO `his_config_info` VALUES (29, 33, 'jeecg-dev.yaml', 'JEECGDEV_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: jeecg-boot-es:9200\n check-enabled: false\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', 'edb0e79d570edf341755caf3853f11e4', '2010-05-05 00:00:00', '2023-07-17 11:49:49', NULL, '0:0:0:0:0:0:0:1', 'U', 'ac14ab82-51f8-4f0c-aa5b-25fb8384bfb6', '');
-- ----------------------------
-- Table structure for permissions
-- ----------------------------
DROP TABLE IF EXISTS `permissions`;
CREATE TABLE `permissions` (
`role` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`resource` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`action` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
UNIQUE INDEX `uk_role_permission`(`role`, `resource`, `action`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of permissions
-- ----------------------------
-- ----------------------------
-- Table structure for roles
-- ----------------------------
DROP TABLE IF EXISTS `roles`;
CREATE TABLE `roles` (
`username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`role` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
UNIQUE INDEX `uk_username_role`(`username`, `role`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of roles
-- ----------------------------
INSERT INTO `roles` VALUES ('nacos', 'ROLE_ADMIN');
-- ----------------------------
-- Table structure for tenant_capacity
-- ----------------------------
DROP TABLE IF EXISTS `tenant_capacity`;
CREATE TABLE `tenant_capacity` (
`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'Tenant ID',
`quota` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '配额0表示使用默认值',
`usage` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '使用量',
`max_size` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '单个配置大小上限单位为字节0表示使用默认值',
`max_aggr_count` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '聚合子配置最大个数',
`max_aggr_size` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '单个聚合数据的子配置大小上限单位为字节0表示使用默认值',
`max_history_count` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '最大变更历史数量',
`gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_tenant_id`(`tenant_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '租户容量信息表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of tenant_capacity
-- ----------------------------
-- ----------------------------
-- Table structure for tenant_info
-- ----------------------------
DROP TABLE IF EXISTS `tenant_info`;
CREATE TABLE `tenant_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`kp` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'kp',
`tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT 'tenant_id',
`tenant_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT 'tenant_name',
`tenant_desc` varchar(256) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'tenant_desc',
`create_source` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'create_source',
`gmt_create` bigint(20) NOT NULL COMMENT '创建时间',
`gmt_modified` bigint(20) NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_tenant_info_kptenantid`(`kp`, `tenant_id`) USING BTREE,
INDEX `idx_tenant_id`(`tenant_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'tenant_info' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of tenant_info
-- ----------------------------
INSERT INTO `tenant_info` VALUES (1, '1', 'ac14ab82-51f8-4f0c-aa5b-25fb8384bfb6', 'jeecg', 'jeecg 测试命名空间', 'nacos', 1653291038942, 1653291038942);
-- ----------------------------
-- Table structure for users
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`password` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`enabled` tinyint(1) NOT NULL,
PRIMARY KEY (`username`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of users
-- ----------------------------
INSERT INTO `users` VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', 1);
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -1,119 +0,0 @@
#
# XXL-JOB v2.2.0
# Copyright (c) 2015-present, xuxueli.
CREATE database if NOT EXISTS `xxl_job` default character set utf8mb4 collate utf8mb4_general_ci;
use `xxl_job`;
SET NAMES utf8mb4;
CREATE TABLE `xxl_job_info` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`job_group` int(11) NOT NULL COMMENT '执行器主键ID',
`job_cron` varchar(128) NOT NULL COMMENT '任务执行CRON',
`job_desc` varchar(255) NOT NULL,
`add_time` datetime DEFAULT NULL,
`update_time` datetime DEFAULT NULL,
`author` varchar(64) DEFAULT NULL COMMENT '作者',
`alarm_email` varchar(255) DEFAULT NULL COMMENT '报警邮件',
`executor_route_strategy` varchar(50) DEFAULT NULL COMMENT '执行器路由策略',
`executor_handler` varchar(255) DEFAULT NULL COMMENT '执行器任务handler',
`executor_param` varchar(512) DEFAULT NULL COMMENT '执行器任务参数',
`executor_block_strategy` varchar(50) DEFAULT NULL COMMENT '阻塞处理策略',
`executor_timeout` int(11) NOT NULL DEFAULT '0' COMMENT '任务执行超时时间单位秒',
`executor_fail_retry_count` int(11) NOT NULL DEFAULT '0' COMMENT '失败重试次数',
`glue_type` varchar(50) NOT NULL COMMENT 'GLUE类型',
`glue_source` mediumtext COMMENT 'GLUE源代码',
`glue_remark` varchar(128) DEFAULT NULL COMMENT 'GLUE备注',
`glue_updatetime` datetime DEFAULT NULL COMMENT 'GLUE更新时间',
`child_jobid` varchar(255) DEFAULT NULL COMMENT '子任务ID多个逗号分隔',
`trigger_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '调度状态0-停止1-运行',
`trigger_last_time` bigint(13) NOT NULL DEFAULT '0' COMMENT '上次调度时间',
`trigger_next_time` bigint(13) NOT NULL DEFAULT '0' COMMENT '下次调度时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `xxl_job_log` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`job_group` int(11) NOT NULL COMMENT '执行器主键ID',
`job_id` int(11) NOT NULL COMMENT '任务主键ID',
`executor_address` varchar(255) DEFAULT NULL COMMENT '执行器地址本次执行的地址',
`executor_handler` varchar(255) DEFAULT NULL COMMENT '执行器任务handler',
`executor_param` varchar(512) DEFAULT NULL COMMENT '执行器任务参数',
`executor_sharding_param` varchar(20) DEFAULT NULL COMMENT '执行器任务分片参数格式如 1/2',
`executor_fail_retry_count` int(11) NOT NULL DEFAULT '0' COMMENT '失败重试次数',
`trigger_time` datetime DEFAULT NULL COMMENT '调度-时间',
`trigger_code` int(11) NOT NULL COMMENT '调度-结果',
`trigger_msg` text COMMENT '调度-日志',
`handle_time` datetime DEFAULT NULL COMMENT '执行-时间',
`handle_code` int(11) NOT NULL COMMENT '执行-状态',
`handle_msg` text COMMENT '执行-日志',
`alarm_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '告警状态0-默认1-无需告警2-告警成功3-告警失败',
PRIMARY KEY (`id`),
KEY `I_trigger_time` (`trigger_time`),
KEY `I_handle_code` (`handle_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `xxl_job_log_report` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`trigger_day` datetime DEFAULT NULL COMMENT '调度-时间',
`running_count` int(11) NOT NULL DEFAULT '0' COMMENT '运行中-日志数量',
`suc_count` int(11) NOT NULL DEFAULT '0' COMMENT '执行成功-日志数量',
`fail_count` int(11) NOT NULL DEFAULT '0' COMMENT '执行失败-日志数量',
PRIMARY KEY (`id`),
UNIQUE KEY `i_trigger_day` (`trigger_day`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `xxl_job_logglue` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`job_id` int(11) NOT NULL COMMENT '任务主键ID',
`glue_type` varchar(50) DEFAULT NULL COMMENT 'GLUE类型',
`glue_source` mediumtext COMMENT 'GLUE源代码',
`glue_remark` varchar(128) NOT NULL COMMENT 'GLUE备注',
`add_time` datetime DEFAULT NULL,
`update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `xxl_job_registry` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`registry_group` varchar(50) NOT NULL,
`registry_key` varchar(255) NOT NULL,
`registry_value` varchar(255) NOT NULL,
`update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `i_g_k_v` (`registry_group`,`registry_key`,`registry_value`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `xxl_job_group` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`app_name` varchar(64) NOT NULL COMMENT '执行器AppName',
`title` varchar(12) NOT NULL COMMENT '执行器名称',
`address_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '执行器地址类型0=自动注册1=手动录入',
`address_list` varchar(512) DEFAULT NULL COMMENT '执行器地址列表多地址逗号分隔',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `xxl_job_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL COMMENT '账号',
`password` varchar(50) NOT NULL COMMENT '密码',
`role` tinyint(4) NOT NULL COMMENT '角色0-普通用户1-管理员',
`permission` varchar(255) DEFAULT NULL COMMENT '权限执行器ID列表多个逗号分割',
PRIMARY KEY (`id`),
UNIQUE KEY `i_username` (`username`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `xxl_job_lock` (
`lock_name` varchar(50) NOT NULL COMMENT '锁名称',
PRIMARY KEY (`lock_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `xxl_job_group`(`id`, `app_name`, `title`, `address_type`, `address_list`) VALUES (1, 'xxl-job-executor-sample', '示例执行器', 0, NULL);
INSERT INTO `xxl_job_info`(`id`, `job_group`, `job_cron`, `job_desc`, `add_time`, `update_time`, `author`, `alarm_email`, `executor_route_strategy`, `executor_handler`, `executor_param`, `executor_block_strategy`, `executor_timeout`, `executor_fail_retry_count`, `glue_type`, `glue_source`, `glue_remark`, `glue_updatetime`, `child_jobid`) VALUES (1, 1, '0 0 0 * * ? *', '测试任务1', '2018-11-03 22:21:31', '2018-11-03 22:21:31', 'XXL', '', 'FIRST', 'demoJobHandler', '', 'SERIAL_EXECUTION', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2018-11-03 22:21:31', '');
INSERT INTO `xxl_job_user`(`id`, `username`, `password`, `role`, `permission`) VALUES (1, 'admin', 'e10adc3949ba59abbe56e057f20f883e', 1, NULL);
INSERT INTO `xxl_job_lock` ( `lock_name`) VALUES ( 'schedule_lock');
commit;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,5 +0,0 @@
oracle导出编码 export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
导出用户: jeecgboot
导入命令: imp scott/tiger@orcl file=jeecgboot-oracle11g.dmp

File diff suppressed because one or more lines are too long

View File

@ -1,4 +0,0 @@
ALTER TABLE config_info ADD encrypted_data_key varchar(255) DEFAULT NULL COMMENT '加密key';
ALTER TABLE his_config_info ADD encrypted_data_key varchar(255) DEFAULT NULL COMMENT '加密key';
ALTER TABLE config_info_beta ADD encrypted_data_key varchar(255) DEFAULT NULL COMMENT '加密key';
ALTER TABLE config_info_tag ADD encrypted_data_key varchar(255) DEFAULT NULL COMMENT '加密key';

View File

@ -1,10 +0,0 @@
版本升级方法?
JeecgBoot属于平台级产品每次升级改动内容较多目前做不到平滑升级。
这里给用户的升级建议是这样的:
1.代码升级 => 本地版本通过svn或者git做好主干在分支上做业务开发jeecg每次版本发布可以手工覆盖主干的代码对比代码进行提交
2.数据库升级 => 针对数据库我们每次发布会提供增量升级SQL可以通过增量SQL实现数据库的升级。
3.兼容问题 => 每次版本发布会针对不兼容地方标注说明,需要手工修改不兼容的代码。
注意: 升级sql目前只提供mysql版本执行完脚步后新菜单需要手工进行角色授权刷新首页才会出现。

View File

@ -2,6 +2,8 @@ package org.jeecg.common.system.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import org.jeecg.common.desensitization.annotation.SensitiveField;
import org.springframework.format.annotation.DateTimeFormat;
@ -87,7 +89,7 @@ public class LoginUser {
* 状态(1正常 2冻结
*/
private Integer status;
private Integer delFlag;
/**
* 同步工作流引擎1同步0不同步
@ -127,4 +129,9 @@ public class LoginUser {
/**设备id uniapp推送用*/
private String clientId;
private String openId;
@ApiModelProperty(value = "是否是vip")
/**是否是vip*/
private boolean vipFlag=false;
}

View File

@ -75,6 +75,10 @@ public class ShiroConfig {
}
}
filterChainDefinitionMap.put("/wx/login","anon");//小程序登录
filterChainDefinitionMap.put("/art/recommendMajor/testCultural","anon");//文化分测算
filterChainDefinitionMap.put("/wx/pay/v1/payNotify","anon");//订单支付回调校验
filterChainDefinitionMap.put("/art/major/majorInfo","anon");//前台-专业页面详情
filterChainDefinitionMap.put("/yx/yxMajor/list","anon");//前台-查专业
filterChainDefinitionMap.put("/art/volunteer/preview","anon");//前台-导出志愿表pdf

View File

@ -53,11 +53,37 @@
<version>9.1.9</version>
</dependency>
<!-- 积木报表 mongo redis 支持包
<!--微信支付-->
<!--<dependency>
<groupId>com.github.wechatpay-apiv3</groupId>
<artifactId>wechatpay-java</artifactId>
<version>0.2.11</version>
</dependency>-->
<!-- 微信支付 SDK -->
<dependency>
<groupId>com.github.javen205</groupId>
<artifactId>IJPay-WxPay</artifactId>
<version>2.9.6</version>
</dependency>
<!--<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>2.3.4</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.pentaho</groupId>
<artifactId>pentaho-aggdesigner-algorithm</artifactId>
</exclusion>
</exclusions>
</dependency>-->
<!-- 积木报表 mongo redis 支持包
<dependency>
<groupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimureport-nosql-starter</artifactId>
</dependency>-->
</dependencies>
</project>

View File

@ -11,17 +11,29 @@ import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.xkcoding.http.HttpUtil;
import io.swagger.annotations.Api;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.util.JwtUtil;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.*;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.model.WxModel;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.wx.service.WechatPayService;
import org.jeecg.modules.yx.entity.YxOrder;
import org.jeecg.modules.yx.entity.YxVipCard;
import org.jeecg.modules.yx.service.IYxOrderService;
import org.jeecg.modules.yx.service.IYxUserScoreService;
import org.jeecg.modules.yx.service.IYxVipCardService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
@ -30,6 +42,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.security.spec.AlgorithmParameterSpec;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
@ -51,9 +65,29 @@ public class WxController {
private ISysUserService sysUserService;
@Autowired
private IYxUserScoreService yxUserScoreService;
@Autowired
private IYxVipCardService yxVipCardService;
@Autowired
private IYxOrderService yxOrderService;
public static final String AES = "AES";
public static final String AES_CBC_PADDING = "AES/CBC/PKCS7Padding";
@PostMapping(value = "/editUserInfo")
public Result<?> editUserInfo(@RequestBody SysUser sysUser){
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
AssertUtils.notNull(user,"获取当前用户信息失败");
try {
String id = user.getId();
LambdaUpdateWrapper<SysUser> objectLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
objectLambdaUpdateWrapper.eq(SysUser::getId,id);
objectLambdaUpdateWrapper.set(SysUser::getRealname,sysUser.getRealname());
sysUserService.update(objectLambdaUpdateWrapper);
}catch (Exception e){
throw new JeecgBootException(e);
}
return Result.OK("保存成功");
}
@PostMapping("/login")
public Result<?> wechatLogin(@RequestBody WxModel wxModel) {
String url = "https://api.weixin.qq.com/sns/jscode2session" +
@ -95,10 +129,26 @@ public class WxController {
redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token);
redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME * 2 / 1000);
JSONObject obj = new JSONObject();
LoginUser loginUser=new LoginUser();
BeanUtils.copyProperties(user,loginUser);
//获取vip信息
List<YxVipCard> yxVipCards = yxVipCardService.selectByUserId(loginUser.getId());
if (CollectionUtils.isNotEmpty(yxVipCards)) {
loginUser.setVipFlag(true);
}
if (!loginUser.isVipFlag()) {
//获取订单信息
List<YxOrder> yxOrderList = yxOrderService.findListByPaymentUserId(loginUser.getId());
if (CollectionUtils.isNotEmpty(yxOrderList)) {
long count = yxOrderList.stream().filter(y -> y.getOrderStatus().equals("1")).count();
loginUser.setVipFlag(count>0);
}
}
obj.put("token", token);
obj.put("openId",openId);
obj.put("sessionKey",sessionKey);
obj.put("userInfo", user);
obj.put("userInfo", loginUser);
return Result.OK(obj);
}

View File

@ -1,16 +1,24 @@
package org.jeecg.modules.art.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.art.vo.QueryRecommendMajorVO;
import org.jeecg.modules.yx.entity.YxSchoolMajor;
import org.jeecg.modules.yx.entity.YxUserScore;
import org.jeecg.modules.yx.service.IYxMajorService;
import org.jeecg.modules.yx.service.IYxSchoolMajorService;
import org.jeecg.modules.yx.service.IYxUserScoreService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Description
* @Author ZhouWenTao
@ -23,6 +31,10 @@ import org.springframework.web.bind.annotation.RestController;
public class ArtMajorController {
@Autowired
private IYxMajorService yxMajorService;
@Autowired
private IYxUserScoreService yxUserScoreService;
@Autowired
private IYxSchoolMajorService yxSchoolMajorService;
@ApiOperation(value = "专业介绍")
@GetMapping("/majorInfo")
@ -31,6 +43,24 @@ public class ArtMajorController {
return Result.OK(yxMajorService.findByMajorCode(majorCode));
}
@ApiOperation(value = "根据批次及专业类别获取专业列表")
@GetMapping(value = "/schoolMajorListByBatchAndMajorType")
public Result<?> schoolMajorListByBatchAndMajorType(QueryRecommendMajorVO queryRecommendMajorVO){
LambdaQueryWrapper<YxSchoolMajor> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(YxSchoolMajor::getBatch,queryRecommendMajorVO.getBatch());
if (StringUtils.isNotBlank(queryRecommendMajorVO.getProfessionalCategory())) {
lambdaQueryWrapper.eq(YxSchoolMajor::getMajorType,queryRecommendMajorVO.getProfessionalCategory());
}else{
YxUserScore activeCurrentUserScore = yxUserScoreService.getActiveCurrentUserScore();
lambdaQueryWrapper.eq(YxSchoolMajor::getMajorType,activeCurrentUserScore.getProfessionalCategory());
}
lambdaQueryWrapper.isNotNull(YxSchoolMajor::getRulesEnrollProbability);
lambdaQueryWrapper.groupBy(YxSchoolMajor::getMajorCode);
List<YxSchoolMajor> yxSchoolMajorList = yxSchoolMajorService.list(lambdaQueryWrapper);
return Result.OK(yxSchoolMajorList);
}
/**
* 小程序端 查专业 列表
*/
@ -39,4 +69,11 @@ public class ArtMajorController {
public Result<?> miniMajorList(QueryRecommendMajorVO queryRecommendMajorVO){
return Result.OK(yxMajorService.miniMajorList(queryRecommendMajorVO));
}
@ApiOperation(value = "获取院校的专业信息")
@GetMapping(value = "/schoolMajorList")
public Result<?> schoolMajorList(QueryRecommendMajorVO queryRecommendMajorVO){
return Result.OK(yxMajorService.schoolMajorList(queryRecommendMajorVO));
}
}

View File

@ -6,19 +6,15 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.AssertUtils;
import org.jeecg.modules.art.dto.ArtCalculateInvestmentDTO;
import org.jeecg.modules.art.dto.ArtRecommendMajorBaseDTO;
import org.jeecg.modules.art.dto.ArtTestCulturalDTO;
import org.jeecg.modules.art.dto.RecommendMajorDTO;
import org.jeecg.modules.art.vo.QueryCalculateInvestmentVO;
import org.jeecg.modules.art.vo.QueryRecommendMajorVO;
import org.jeecg.modules.yx.entity.YxHistoryMajorEnroll;
import org.jeecg.modules.yx.entity.YxHistoryScoreControlLine;
import org.jeecg.modules.yx.entity.YxSchool;
import org.jeecg.modules.yx.entity.YxSchoolMajor;
import org.jeecg.modules.yx.service.IYxHistoryMajorEnrollService;
import org.jeecg.modules.yx.service.IYxHistoryScoreControlLineService;
@ -49,6 +45,12 @@ public class ArtRecommendMajorController {
@Resource
IYxHistoryScoreControlLineService yxHistoryScoreControlLineService;
@ApiOperation(value = "获取可报专业总数")
@GetMapping("/recommendMajorCount")
public Result<?> recommendMajorCount(QueryRecommendMajorVO queryRecommendMajorVO){
return Result.OK(yxSchoolMajorService.recommendMajorCount(queryRecommendMajorVO));
}
@ApiOperation(value = "小程序端-推荐专业列表")
@GetMapping("/mini/page")
public Result<?> miniRecommendMajorPage(QueryRecommendMajorVO queryRecommendMajorVO) {
@ -59,6 +61,13 @@ public class ArtRecommendMajorController {
return Result.OK(artRecommendMajorBaseDTO);
}
@ApiOperation(value = "小程序端-智能推荐")
@GetMapping("/mini/aiAuto")
public Result<?> aiAutoRecommendMajor(QueryRecommendMajorVO queryRecommendMajorVO) {
ArtRecommendMajorBaseDTO artRecommendMajorBaseDTO = yxSchoolMajorService.aiAutoRecommendMajor(queryRecommendMajorVO);
return Result.OK(artRecommendMajorBaseDTO);
}
@ApiOperation(value = "推荐专业列表")
@GetMapping("/page")
public Result<?> recommendMajorPage(QueryRecommendMajorVO queryRecommendMajorVO) {
@ -135,28 +144,32 @@ public class ArtRecommendMajorController {
Set<String> majorNameSet = yxSchoolMajorList.stream().map(YxSchoolMajor::getMajorName).collect(Collectors.toSet());
//获取 历年分数信息
List<YxHistoryMajorEnroll> yxHistoryMajorEnrollList = yxHistoryMajorEnrollService.list(new LambdaQueryWrapper<YxHistoryMajorEnroll>().eq(YxHistoryMajorEnroll::getYear, year).eq(YxHistoryMajorEnroll::getSchoolCode, schoolCode).in(YxHistoryMajorEnroll::getMajorName, majorNameSet));
Map<String, YxHistoryMajorEnroll> historyMajorEnrollMap = yxHistoryMajorEnrollList.stream().collect(Collectors.toMap(h -> h.getCategory() + a_ + h.getMajorName() + a_ + h.getBatch(), h -> h));
List<YxHistoryMajorEnroll> yxHistoryMajorEnrollList = yxHistoryMajorEnrollService.list(new LambdaQueryWrapper<YxHistoryMajorEnroll>()
.orderByDesc(YxHistoryMajorEnroll::getYear)
.eq(YxHistoryMajorEnroll::getSchoolCode, schoolCode)
.in(YxHistoryMajorEnroll::getMajorName, majorNameSet));
Map<String, YxHistoryMajorEnroll> historyMajorEnrollMap = yxHistoryMajorEnrollList.stream().collect(Collectors.toMap(h -> h.getYear() + a_ + h.getCategory() + a_ + h.getMajorName() + a_ + h.getBatch(), h -> h));
//获取 省控线
List<YxHistoryScoreControlLine> historyScoreControlLineList = yxHistoryScoreControlLineService.list(new LambdaQueryWrapper<YxHistoryScoreControlLine>().eq(YxHistoryScoreControlLine::getYear, year));
List<YxHistoryScoreControlLine> historyScoreControlLineList = yxHistoryScoreControlLineService.list(new LambdaQueryWrapper<>());
Map<String, YxHistoryScoreControlLine> yxHistoryScoreControlLineMap = new LinkedHashMap<>();//key:文科_美术学_提前批
String key = null;
YxHistoryScoreControlLine yxHistoryScoreControlLine = null;
if (CollectionUtils.isNotEmpty(historyScoreControlLineList)) {
yxHistoryScoreControlLineMap = historyScoreControlLineList.stream().collect(Collectors.toMap(h -> h.getCategory() + a_ + h.getProfessionalCategory() + a_ + h.getBatch(), h -> h));
yxHistoryScoreControlLineMap = historyScoreControlLineList.stream().collect(Collectors.toMap(h -> h.getYear() + a_ + h.getCategory() + a_ + h.getProfessionalCategory() + a_ + h.getBatch(), h -> h));
}
List<ArtTestCulturalDTO> artTestCulturalDtoList = new ArrayList<>();
ArtTestCulturalDTO artTestCulturalDto = new ArtTestCulturalDTO();
ArtTestCulturalDTO artTestCulturalDto = null;
for (YxSchoolMajor yxSchoolMajor : yxSchoolMajorList) {
artTestCulturalDto = new ArtTestCulturalDTO();
key = yxSchoolMajor.getCategory() + a_ + yxSchoolMajor.getMajorType() + a_ + (yxSchoolMajor.getBatch().equals("提前批")?"本科A段":yxSchoolMajor.getBatch());
yxHistoryScoreControlLine = yxHistoryScoreControlLineMap.get(key);
if (yxHistoryScoreControlLine != null) {
//文化分控线
artTestCulturalDto.setCulturalScore(yxHistoryScoreControlLine.getCulturalScore());
//专业分控线
artTestCulturalDto.setSpecialScore(yxHistoryScoreControlLine.getSpecialScore());
// 获取上一年的录取信息
key = yxSchoolMajor.getCategory() + a_ + yxSchoolMajor.getMajorName() + a_ + yxSchoolMajor.getBatch();
YxHistoryMajorEnroll yxHistoryMajorEnroll = historyMajorEnrollMap.get(year + a_ + key);
if (yxHistoryMajorEnroll == null) {
yxHistoryMajorEnroll = historyMajorEnrollMap.get(Integer.parseInt(year) - 1 + a_ + key);
if (yxHistoryMajorEnroll == null) {
yxHistoryMajorEnroll = historyMajorEnrollMap.get(Integer.parseInt(year) - 2 + a_ + key);
}
}
artTestCulturalDto.setYear(year);
artTestCulturalDto.setMajorName(yxSchoolMajor.getMajorName());
@ -165,9 +178,23 @@ public class ArtRecommendMajorController {
artTestCulturalDto.setDetail(yxSchoolMajor.getDetail());
artTestCulturalDto.setProbabilityOperator(yxSchoolMajor.getProbabilityOperator());
artTestCulturalDto.setRulesEnrollProbability(yxSchoolMajor.getRulesEnrollProbability());
key = yxSchoolMajor.getCategory() + a_ + yxSchoolMajor.getMajorName() + a_ + yxSchoolMajor.getBatch();
artTestCulturalDto.setMajorNameAll(yxSchoolMajor.getMajorName()+"["+yxSchoolMajor.getCategory()+"]"+"("+yxSchoolMajor.getBatch()+")");
artTestCulturalDto.setScore(historyMajorEnrollMap.get(key).getAdmissionLine());
artTestCulturalDto.setMajorNameAll(yxSchoolMajor.getMajorName() + "[" + yxSchoolMajor.getCategory() + "]" + "(" + yxSchoolMajor.getBatch() + ")");
if (yxHistoryMajorEnroll != null) {
artTestCulturalDto.setScore(yxHistoryMajorEnroll.getAdmissionLine());
//获取上一年的 省控分信息
key = yxSchoolMajor.getCategory() + a_ + yxSchoolMajor.getMajorType() + a_ + (yxSchoolMajor.getBatch().equals("提前批") ? "本科A段" : yxSchoolMajor.getBatch());
yxHistoryScoreControlLine = yxHistoryScoreControlLineMap.get(yxHistoryMajorEnroll.getYear() + a_ + key);
if (yxHistoryScoreControlLine != null) {
//文化分控线
artTestCulturalDto.setCulturalScore(yxHistoryScoreControlLine.getCulturalScore());
//专业分控线
artTestCulturalDto.setSpecialScore(yxHistoryScoreControlLine.getSpecialScore());
}
}
artTestCulturalDtoList.add(artTestCulturalDto);
}
return Result.OK(artTestCulturalDtoList);

View File

@ -44,7 +44,7 @@ public class ArtSchoolController {
@GetMapping("/schoolInfo")
public Result<?> schoolInfo(QueryRecommendMajorVO queryRecommendMajorVO){
String schoolCode = queryRecommendMajorVO.getSchoolCode();
return Result.OK(yxSchoolService.findBySchoolCode(schoolCode));
return Result.OK(yxSchoolService.getArtSchoolInfoBySchoolCode(schoolCode));
}
}

View File

@ -105,14 +105,40 @@ public class ArtVolunteerController {
//如果没有传id则直接获取当前激活的志愿表
volunteerDTO = yxVolunteerService.getActiveByCreate(sysUser.getId());
}
//if (this.scoreInfo.professionalCategory === '音乐类') {
// let categorychildrenList = []
// let professionalCategoryChildren = this.scoreInfo.professionalCategoryChildren
// if (professionalCategoryChildren.includes('音乐表演声乐')) {
// categorychildrenList.push({childName:'音乐表演声乐',score: this.scoreInfo.yybysy})
// }else if (professionalCategoryChildren.includes('音乐表演器乐')) {
// categorychildrenList.push({childName:'音乐表演声乐',score: this.scoreInfo.yybysy})
// }else if (professionalCategoryChildren.includes('音乐教育')) {
// categorychildrenList.push({childName:'音乐表演声乐',score: this.scoreInfo.yybysy})
// }
// }
return Result.OK(volunteerDTO);
}
/**
* 另存为
*/
@ApiOperation(value = "另存为", notes = "另存为")
@PostMapping(value = "/saveAs")
public Result<String> saveAs(@RequestBody SaveVolunteerVO saveVolunteerVO) {
if (CollectionUtils.isEmpty(saveVolunteerVO.getVolunteerRecordList())) {
throw new JeecgBootException("当前志愿单里没有可选志愿!");
}
AssertUtils.notNull(saveVolunteerVO.getVolunteerName(), "请输入志愿单名称!");
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
AssertUtils.notNull(sysUser, "请先登录!");
saveVolunteerVO.setCreateBy(sysUser.getId());
return Result.OK(yxVolunteerService.saveAs(saveVolunteerVO));
}
/**
* 保存志愿
*
* @param saveVolunteerVO
* @return
*/
@ApiOperation(value = "保存", notes = "保存")
@PostMapping(value = "/save")

View File

@ -80,18 +80,12 @@ public class ArtSchoolDTO implements Serializable {
/**硕士点*/
@ApiModelProperty(value = "硕士点")
private String masterPoint;
/**重点学科*/
@ApiModelProperty(value = "重点学科")
private String keyDisciplines;
/**学生人数*/
@ApiModelProperty(value = "学生人数")
private String studentNum;
/**基本信息*/
@ApiModelProperty(value = "基本信息")
private String baseInfo;
/**历史文化*/
@ApiModelProperty(value = "历史文化")
private String hisotryCulture;
/**标签*/
@JsonIgnore
private String tags;
@ -107,4 +101,82 @@ public class ArtSchoolDTO implements Serializable {
@ApiModelProperty(value = "标签")
private Set<String> tagsList;
/**
* 旧院校名称
*/
@Excel(name = "旧院校名称", width = 15)
@ApiModelProperty(value = "旧院校名称")
private java.lang.String oldSchoolName;
/**
* 统一代码
*/
@Excel(name = "统一代码", width = 15)
@ApiModelProperty(value = "统一代码")
private java.lang.String unifiedCode;
/**
* 一流大学
*/
@Excel(name = "一流大学", width = 15)
@ApiModelProperty(value = "一流大学")
private java.lang.String yldx;
/**
* 省重/国重
*/
@Excel(name = "国重/省重", width = 15)
@ApiModelProperty(value = "国重/省重")
private java.lang.String gzsz;
/**
* 保研率
*/
@Excel(name = "保研率", width = 15)
@ApiModelProperty(value = "保研率")
private java.lang.String byl;
/**
* 国家特色专业
*/
@Excel(name = "国家特色专业", width = 15)
@ApiModelProperty(value = "国家特色专业")
private java.lang.String gjtszy;
/**
* 省特色专业
*/
@Excel(name = "省特色专业", width = 15)
@ApiModelProperty(value = "省特色专业")
private java.lang.String stszy;
/**
* 是否国重点
*/
@Excel(name = "是否国重点", width = 15)
@ApiModelProperty(value = "是否国重点")
private java.lang.String gzd;
/**
* 世界一流
*/
@Excel(name = "世界一流", width = 15)
@ApiModelProperty(value = "世界一流")
private java.lang.String sjyl;
/**
* 是否双一流
*/
@Excel(name = "是否双一流", width = 15)
@ApiModelProperty(value = "是否双一流")
private java.lang.String sfsyl;
/**
* 男生占比
*/
@Excel(name = "男生占比", width = 15)
@ApiModelProperty(value = "男生占比")
private java.lang.Double maleRatio;
/**
* 女生占比
*/
@Excel(name = "女生占比", width = 15)
@ApiModelProperty(value = "女生占比")
private java.lang.Double femaleRatio;
/**
* 是否是艺术
*/
@Excel(name = "是否是艺术", width = 15)
@ApiModelProperty(value = "是否是艺术")
private java.lang.Integer isYs;
}

View File

@ -3,6 +3,7 @@ package org.jeecg.modules.art.dto;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -13,6 +14,7 @@ import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* @Description
@ -43,6 +45,19 @@ public class RecommendMajorDTO implements Serializable {
private String majorName;
@ApiModelProperty(value = "专业编码")
private String majorCode;
@JsonIgnore
@ApiModelProperty(value = "专业类型")
private String majorType;
@JsonIgnore
@ApiModelProperty(value = "专业类型子项")
private String majorTypeChild;
@JsonIgnore
@ApiModelProperty(value = "主考科目")
private String mainSubjects;
@JsonIgnore
@ApiModelProperty(value = "是否使用主项成绩")
private String checkMaster;
@ApiModelProperty(value = "招生备注")
private String majorDetail;
@ -70,6 +85,8 @@ public class RecommendMajorDTO implements Serializable {
private BigDecimal culturalControlLine;
@ApiModelProperty(value = "专项分数线")
private BigDecimal specialControlLine;
@ApiModelProperty(value = "学生的分数")
private BigDecimal studentScore;
@ApiModelProperty(value = "学生的折合分数")
private BigDecimal studentConvertedScore;
@ -79,4 +96,9 @@ public class RecommendMajorDTO implements Serializable {
private String batch;
@ApiModelProperty(value = "招生代码")
private String enrollmentCode;
@ApiModelProperty(value = "院校ID")
private String schoolId;
@ApiModelProperty(value = "标签")
private Set<String> tagsList;
}

View File

@ -24,25 +24,35 @@ public class QueryRecommendMajorVO extends ArtBaseDTO {
private String year;
@ApiModelProperty(value = "专业编码")
private String majorCode;
@ApiModelProperty(value = "专业编码List")
private List<String> majorCodeList;
@ApiModelProperty(value = "专业名称")
private String majorName;
@ApiModelProperty(value = "地区")
private String province;
@ApiModelProperty(value = "专业类别")
private String professionalCategory;
@ApiModelProperty(value = "专业类别子类")
private List<String> pCategoryChildrenList;
@ApiModelProperty(value = "学历层次")
private String educationalLevel;
@ApiModelProperty(value = "就读地域")
private List<String> addressList;
@ApiModelProperty(value = "标签s")
private String tagsStrs;
@ApiModelProperty(value = "标签")
private List<String> tagsList;
@ApiModelProperty(value = "办学性质")
private String schoolNature;
@ApiModelProperty(value = "办学性质s")
private String schoolNatureStrs;
@ApiModelProperty(value = "办学性质List")
private List<String> schoolNatureList;
@ApiModelProperty(value = "院校类型")
private String institutionType;
@ApiModelProperty(value = "院校类型List")
private List<String> institutionTypeList;
@ApiModelProperty(value = "办学类型")
private String schoolType;
@ApiModelProperty(value = "批次组")

View File

@ -0,0 +1,59 @@
package org.jeecg.modules.art.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @Description 保存 志愿单 明细信息
* @Author ZhouWenTao
* @Date 2024/03/01 21:36
*/
@Data
public class SaveVolunteerRecordVO implements Serializable {
private String id;
@ApiModelProperty(value = "志愿单id")
private String volunteerId;
/**
* 专业编码
*/
@Excel(name = "专业编码", width = 15)
@ApiModelProperty(value = "专业编码")
private java.lang.String majorCode;
/**
* 学校编码
*/
@Excel(name = "学校编码", width = 15)
@ApiModelProperty(value = "学校编码")
private java.lang.String schoolCode;
/**
* 招生代码
*/
@Excel(name = "招生代码", width = 15)
@ApiModelProperty(value = "招生代码")
private String enrollmentCode;
/**志愿顺序*/
@Excel(name = "志愿顺序", width = 15)
@ApiModelProperty(value = "志愿顺序")
private Integer indexs;
/**志愿批次*/
@Excel(name = "志愿批次", width = 15)
@ApiModelProperty(value = "志愿批次")
private String batch;
/**录取概率*/
@Excel(name = "录取概率", width = 15)
@ApiModelProperty(value = "录取概率")
private BigDecimal enrollProbability;
/**折合分数*/
@Excel(name = "折合分数", width = 15)
@ApiModelProperty(value = "折合分数")
private BigDecimal studentConvertedScore;
}

View File

@ -5,6 +5,7 @@ import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
import java.util.List;
/**
* @Description 保存 志愿单 信息
@ -16,36 +17,59 @@ public class SaveVolunteerVO implements Serializable {
private String id;
@ApiModelProperty(value = "志愿单id")
private String volunteerId;
/**专业编码*/
@ApiModelProperty(value = "成绩id")
private String scoreId;
@ApiModelProperty(value = "志愿单名称")
private String volunteerName;
@ApiModelProperty(value = "志愿单明细信息")
private List<SaveVolunteerRecordVO> volunteerRecordList;
/**
* 专业编码
*/
@Excel(name = "专业编码", width = 15)
@ApiModelProperty(value = "专业编码")
private java.lang.String majorCode;
/**学校编码*/
/**
* 学校编码
*/
@Excel(name = "学校编码", width = 15)
@ApiModelProperty(value = "学校编码")
private java.lang.String schoolCode;
/**招生代码*/
/**
* 招生代码
*/
@Excel(name = "招生代码", width = 15)
@ApiModelProperty(value = "招生代码")
private String enrollmentCode;
/**志愿顺序*/
/**
* 志愿顺序
*/
@Excel(name = "志愿顺序", width = 15)
@ApiModelProperty(value = "志愿顺序")
private java.lang.Integer indexs;
/**志愿批次*/
/**
* 志愿批次
*/
@Excel(name = "志愿批次", width = 15)
@ApiModelProperty(value = "志愿批次")
private java.lang.String batch;
/**文理分科*/
/**
* 文理分科
*/
@Excel(name = "文理分科", width = 15)
@ApiModelProperty(value = "文理分科")
private java.lang.String category;
/**创建人*/
/**
* 创建人
*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
}

View File

@ -3,6 +3,7 @@ package org.jeecg.modules.message.handle.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.common.api.dto.message.MessageDTO;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.util.JwtUtil;
@ -85,7 +86,7 @@ public class EmailSendMsgHandle implements ISendMsgHandle {
String title = messageDTO.getTitle();
for(SysUser user: list){
String email = user.getEmail();
if (ObjectUtils.isEmpty(email)) {
if (StringUtils.isEmpty(email)) {
continue;
}
content=replaceContent(user,content);
@ -102,7 +103,7 @@ public class EmailSendMsgHandle implements ISendMsgHandle {
*/
public void sendMessageToCopyUser(MessageDTO messageDTO) {
String copyToUser = messageDTO.getCopyToUser();
if(ObjectUtils.isNotEmpty(copyToUser)) {
if(StringUtils.isNotEmpty(copyToUser)) {
LambdaQueryWrapper<SysUser> query = new LambdaQueryWrapper<SysUser>().in(SysUser::getUsername, copyToUser.split(","));
List<SysUser> list = sysUserMapper.selectList(query);
String content = messageDTO.getContent();
@ -110,7 +111,7 @@ public class EmailSendMsgHandle implements ISendMsgHandle {
for (SysUser user : list) {
String email = user.getEmail();
if (ObjectUtils.isEmpty(email)) {
if (StringUtils.isEmpty(email)) {
continue;
}
content=replaceContent(user,content);

View File

@ -0,0 +1,49 @@
package org.jeecg.modules.mini.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.art.vo.QueryRecommendMajorVO;
import org.jeecg.modules.yx.service.IYxMajorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Description 小程序端-专业接口
* @Author ZhouWenTao
* @Date 2024/1/17 9:47
*/
@Api(tags="小程序端-专业接口")
@RestController
@Slf4j
@RequestMapping("/mini/major")
public class MiniMajorController {
@Autowired
private IYxMajorService yxMajorService;
@ApiOperation(value = "专业介绍")
@GetMapping("/majorInfo")
public Result<?> schoolInfo(QueryRecommendMajorVO queryRecommendMajorVO){
String majorCode = queryRecommendMajorVO.getMajorCode();
return Result.OK(yxMajorService.findByMajorCode(majorCode));
}
/**
* 小程序端 查专业 列表
*/
@ApiOperation(value = "小程序端查专业列表")
@GetMapping("/miniMajorList")
public Result<?> miniMajorList(QueryRecommendMajorVO queryRecommendMajorVO){
return Result.OK(yxMajorService.miniMajorList(queryRecommendMajorVO));
}
@ApiOperation(value = "获取院校的专业信息")
@GetMapping(value = "/schoolMajorList")
public Result<?> schoolMajorList(QueryRecommendMajorVO queryRecommendMajorVO){
return Result.OK(yxMajorService.schoolMajorList(queryRecommendMajorVO));
}
}

View File

@ -0,0 +1,40 @@
package org.jeecg.modules.mini.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.art.vo.QueryRecommendMajorVO;
import org.jeecg.modules.yx.service.IYxSchoolService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Description 小程序端 院校接口
* @Author ZhouWenTao
* @Date 2023/11/14 10:03
*/
@Api(tags="小程序端-院校接口")
@RestController
@RequestMapping("/mini/school")
@Slf4j
public class MiniSchoolController {
@Autowired
private IYxSchoolService yxSchoolService;
@ApiOperation(value = "学校详情")
@GetMapping("/schoolInfo")
public Result<?> schoolInfo(QueryRecommendMajorVO queryRecommendMajorVO){
String schoolCode = queryRecommendMajorVO.getSchoolCode();
return Result.OK(yxSchoolService.getMiniSchoolInfoBySchoolCode(schoolCode));
}
@ApiOperation(value = "搜索学校")
@GetMapping("/search")
public Result<?> search(QueryRecommendMajorVO queryRecommendMajorVO){
return Result.OK(yxSchoolService.miniSchoolSearch(queryRecommendMajorVO));
}
}

View File

@ -0,0 +1,82 @@
package org.jeecg.modules.mini.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.AssertUtils;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.yx.entity.YxOrder;
import org.jeecg.modules.yx.entity.YxVipCard;
import org.jeecg.modules.yx.entity.YxVipSku;
import org.jeecg.modules.yx.service.IYxOrderService;
import org.jeecg.modules.yx.service.IYxVipCardService;
import org.jeecg.modules.yx.service.IYxVipSkuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* @Description
* @Author ZhouWenTao
* @Date 2024/2/23 16:20
*/
@Slf4j
@Api(tags = "小程序-vip相关接口")
@RestController
@RequestMapping("/mini/vip")
public class MiniVipController {
@Autowired
private ISysUserService sysUserService;
@Autowired
private IYxVipCardService yxVipCardService;
@Autowired
private IYxOrderService yxOrderService;
@Autowired
private IYxVipSkuService yxVipSkuService;
@GetMapping(value = "/sku/all")
@ApiOperation(value = "获取全部商品信息")
public Result<?> skuAll(){
LambdaQueryWrapper<YxVipSku> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(YxVipSku::getSaleable, "1");
queryWrapper.orderByAsc(YxVipSku::getSkuPrice);
List<YxVipSku> list = yxVipSkuService.list(queryWrapper);
return Result.OK(list);
}
@PostMapping(value = "/card/activation")
@ApiOperation(value = "卡密激活")
public Result<?> cardActivation(@RequestBody JSONObject jsonObject){
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
SysUser user = sysUserService.getById(sysUser.getId());
AssertUtils.notNull(user,"获取用户信息失败,请联系管理员");
String card = jsonObject.getString("card");
AssertUtils.notNull(card,"请输入卡密");
//检查card是否有效
boolean cardValid = yxVipCardService.cardIsValid(card);
AssertUtils.isTrue(cardValid,"当前卡密无效或已被使用");
//使用卡密
boolean exchange = yxVipCardService.exchange(card, user.getId());
AssertUtils.isTrue(exchange,"当前卡密已被使用");
return Result.OK("激活成功");
}
@GetMapping(value = "/orderDetail")
@ApiOperation(value = "获取订单详情")
public Result<?> buy(@RequestParam(value = "orderCode")String orderCode){
AssertUtils.notNull(orderCode,"订单编号为空!");
YxOrder yxOrder = yxOrderService.getOne(new LambdaQueryWrapper<YxOrder>().eq(YxOrder::getOrderCode, orderCode));
AssertUtils.notNull(yxOrder,"订单信息未找到!");
return Result.OK(yxOrder);
}
}

View File

@ -0,0 +1,205 @@
package org.jeecg.modules.mini.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.modules.art.dto.RecommendMajorDTO;
import org.jeecg.modules.yx.entity.YxSchoolMajor;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Set;
/**
* @Description 小程序端院校返回信息对象
* @Author ZhouWenTao
* @Date 2023/11/15 11:15
*/
@Data
@ApiModel(value = "小程序端-院校信息对象")
public class MiniSchoolDTO implements Serializable {
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private String id;
/**学校名称*/
@ApiModelProperty(value = "学校名称")
private String schoolName;
/**学校编码*/
@ApiModelProperty(value = "学校编码")
private String schoolCode;
/**官网网址*/
@ApiModelProperty(value = "官网网址")
private String schoolWebsiteAddress;
/**学校电话*/
@ApiModelProperty(value = "学校电话")
private String schoolPhone;
/**学校图标*/
@ApiModelProperty(value = "学校图标")
private String schoolIcon;
/**办学日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "办学日期")
private Date schoolOpenDate;
@ApiModelProperty(value = "学校类型(本科/专科)")
private String schoolType;
/**省份*/
@ApiModelProperty(value = "省份")
private String province;
/**市*/
@ApiModelProperty(value = "")
private String city;
/**区*/
@ApiModelProperty(value = "")
private String area;
@ApiModelProperty(value = "详细地址")
private String street;
/**隶属于*/
@ApiModelProperty(value = "隶属于")
private String affiliation;
/**办学性质*/
@ApiModelProperty(value = "办学性质")
private String schoolNature;
/**院校类型*/
@ApiModelProperty(value = "院校类型")
private String institutionType;
/**博士点*/
@ApiModelProperty(value = "博士点")
private String doctoralPoint;
/**硕士点*/
@ApiModelProperty(value = "硕士点")
private String masterPoint;
/**学生人数*/
@ApiModelProperty(value = "学生人数")
private String studentNum;
/**基本信息*/
@ApiModelProperty(value = "基本信息")
private String baseInfo;
/**标签*/
@JsonIgnore
private String tags;
@ApiModelProperty(value = "211工程")
@JsonIgnore
private String is211;
@ApiModelProperty(value = "985工程")
@JsonIgnore
private String is985;
@ApiModelProperty(value = "强基计划")
@JsonIgnore
private String isStrengthen;
@ApiModelProperty(value = "标签")
private Set<String> tagsList;
/**
* 旧院校名称
*/
@Excel(name = "旧院校名称", width = 15)
@ApiModelProperty(value = "旧院校名称")
private String oldSchoolName;
/**
* 统一代码
*/
@Excel(name = "统一代码", width = 15)
@ApiModelProperty(value = "统一代码")
private String unifiedCode;
/**
* 一流大学
*/
@Excel(name = "一流大学", width = 15)
@ApiModelProperty(value = "一流大学")
private String yldx;
/**
* 省重/国重
*/
@Excel(name = "国重/省重", width = 15)
@ApiModelProperty(value = "国重/省重")
private String gzsz;
/**
* 保研率
*/
@Excel(name = "保研率", width = 15)
@ApiModelProperty(value = "保研率")
private String byl;
/**
* 国家特色专业
*/
@Excel(name = "国家特色专业", width = 15)
@ApiModelProperty(value = "国家特色专业")
private String gjtszy;
/**
* 省特色专业
*/
@Excel(name = "省特色专业", width = 15)
@ApiModelProperty(value = "省特色专业")
private String stszy;
/**
* 是否国重点
*/
@Excel(name = "是否国重点", width = 15)
@ApiModelProperty(value = "是否国重点")
private String gzd;
/**
* 世界一流
*/
@Excel(name = "世界一流", width = 15)
@ApiModelProperty(value = "世界一流")
private String sjyl;
/**
* 是否双一流
*/
@Excel(name = "是否双一流", width = 15)
@ApiModelProperty(value = "是否双一流")
private String sfsyl;
/**
* 男生占比
*/
@Excel(name = "男生占比", width = 15)
@ApiModelProperty(value = "男生占比")
private Double maleRatio;
/**
* 女生占比
*/
@Excel(name = "女生占比", width = 15)
@ApiModelProperty(value = "女生占比")
private Double femaleRatio;
/**
* 是否是艺术
*/
@Excel(name = "是否是艺术", width = 15)
@ApiModelProperty(value = "是否是艺术")
private Integer isYs;
/**
* 计划数的年份
*/
@ApiModelProperty(value = "计划数的年份")
private String jhsYear;
/**
* 计划数
*/
@ApiModelProperty(value = "计划数")
private Integer jhs;
/**
* 最低分的年份
*/
@ApiModelProperty(value = "最低分的年份")
private String zdfYear;
/**
* 最低分
*/
@ApiModelProperty(value = "最低分")
private BigDecimal zdf;
}

View File

@ -834,7 +834,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
* @param sysUser
*/
private void setUserTenantIds(SysUser sysUser) {
if(ObjectUtils.isNotEmpty(sysUser)) {
if(sysUser!=null) {
List<Integer> list = relationMapper.getTenantIdsNoStatus(sysUser.getId());
if(null!=list && list.size()>0){
sysUser.setRelTenantIds(StringUtils.join(list.toArray(), ","));

View File

@ -0,0 +1,329 @@
package org.jeecg.modules.wx.controller;
/**
* @Description
* @Author ZhouWenTao
* @Date 2024/2/22 17:19
*/
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.file.FileWriter;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.ContentType;
import cn.hutool.http.HttpStatus;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.ijpay.core.IJPayHttpResponse;
import com.ijpay.core.enums.RequestMethodEnum;
import com.ijpay.core.kit.AesUtil;
import com.ijpay.core.kit.HttpKit;
import com.ijpay.core.kit.PayKit;
import com.ijpay.core.kit.WxPayKit;
import com.ijpay.core.utils.DateTimeZoneUtil;
import com.ijpay.wxpay.WxPayApi;
import com.ijpay.wxpay.enums.WxDomainEnum;
import com.ijpay.wxpay.enums.v3.BasePayApiEnum;
import com.ijpay.wxpay.enums.v3.OtherApiEnum;
import com.ijpay.wxpay.model.v3.Amount;
import com.ijpay.wxpay.model.v3.Payer;
import com.ijpay.wxpay.model.v3.UnifiedOrderModel;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.AssertUtils;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.yx.entity.YxOrder;
import org.jeecg.modules.yx.entity.YxVipSku;
import org.jeecg.modules.yx.service.IYxOrderService;
import org.jeecg.modules.yx.service.IYxVipSkuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Scope;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayInputStream;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.security.cert.X509Certificate;
import java.util.HashMap;
import java.util.Map;
/**
* @Author: Scoot
* @Date: 2023/3/16 15:52
* @Description: 微信支付控制器
*/
@Slf4j
@Api(tags = "微信支付控制器")
@RestController
@RequestMapping("/wx/pay/v1")
@Scope("prototype")
public class WxPayApiController {
@Autowired
private ISysUserService sysUserService;
@Autowired
private IYxOrderService yxOrderService;
@Autowired
private IYxVipSkuService yxVipSkuService;
/**微信小程序appid**/
@Value("${wx.appId}")
String appid;
/**微信小程序secretId**/
@Value("${wx.appSecret}")
String secret;
/**商户号**/
@Value("${wx.mchid}")
String mchid;
/**商户密钥**/
@Value("${wx.mchKey}")
String mchKey;
/**回调地址**/
@Value("${wx.notifyUrl}")
String notifyUrl;
/**证书地址**/
@Value("${wx.certPath}")
String certPath;
/**证书密钥地址**/
@Value("${wx.certKeyPath}")
String certKeyPath;
/**微信平台证书**/
@Value("${wx.platFormPath}")
String platFormPath;
/**
* 微信支付
* https://blog.fasterinfo.top/13871.html
*/
@RequestMapping("/jsApiPay")
@ResponseBody
public Result<?> jsApiPay(@RequestBody JSONObject requestBody) {
String skuCode = requestBody.getStr("skuCode");
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
SysUser user = sysUserService.getById(sysUser.getId());
if (user==null) {
throw new JeecgBootException("获取用户信息失败,请联系管理员");
}
//获取库存信息
YxVipSku yxVipSku = yxVipSkuService.getBySkuCode(skuCode);
AssertUtils.notNull(yxVipSku,"获取商品信息失败,请联系管理员");
YxOrder yxOrder = new YxOrder();
String orderCode = PayKit.generateStr();
String openId = user.getWxOpenId();
BigDecimal skuPrice = yxVipSku.getSkuPrice();
BigDecimal totalAmount=skuPrice.multiply(new BigDecimal("100"));
String description = "艺体志愿宝VIP";
if (StringUtils.isNotBlank(yxVipSku.getSkuName())) {
description +="-"+yxVipSku.getSkuName();
}
if (StringUtils.isNotBlank(yxVipSku.getSkuDetail())) {
description +=""+yxVipSku.getSkuDetail();
}
try {
String timeExpire = DateTimeZoneUtil.dateToTimeZone(System.currentTimeMillis() + 1000 * 60 * 3);
UnifiedOrderModel unifiedOrderModel = new UnifiedOrderModel()
// APPID
.setAppid(appid)
// 商户号
.setMchid(mchid)
.setDescription(description)
.setOut_trade_no(orderCode)
.setTime_expire(timeExpire)
.setAttach("艺体志愿宝VIP")
.setNotify_url(notifyUrl)
.setAmount(new Amount().setTotal(totalAmount.intValue()))
.setPayer(new Payer().setOpenid(openId));
log.info("统一下单参数 {}", JSONUtil.toJsonStr(unifiedOrderModel));
IJPayHttpResponse response = WxPayApi.v3(
RequestMethodEnum.POST,
WxDomainEnum.CHINA.toString(),
BasePayApiEnum.JS_API_PAY.toString(),
mchid,
getSerialNumber(),
null,
certKeyPath,
JSONUtil.toJsonStr(unifiedOrderModel)
);
log.info("统一下单响应 {}", response);
// 根据证书序列号查询对应的证书来验证签名结果
boolean verifySignature = WxPayKit.verifySignature(response, platFormPath);
log.info("verifySignature: {}", verifySignature);
if (response.getStatus() == HttpStatus.HTTP_OK && verifySignature) {
String body = response.getBody();
JSONObject jsonObject = JSONUtil.parseObj(body);
String prepayId = jsonObject.getStr("prepay_id");
Map<String, String> map = WxPayKit.jsApiCreateSign(appid, prepayId, certKeyPath);
log.info("唤起支付参数:{}", map);
String jsonStr = JSONUtil.toJsonStr(map);
//==============创建订单信息 Start
yxOrder.setOrderCode(orderCode);//orderCode
yxOrder.setOrderStatus("0");//订单状态
yxOrder.setTotalAmount(totalAmount);//金额
yxOrder.setPaymentUserId(user.getId());//付款人
yxOrder.setOrderSign(jsonStr);
yxOrder.setOrderStatus("1");
yxOrderService.save(yxOrder);
//==============创建订单信息 End
return Result.OK("获取成功",yxOrder.getOrderCode());
}
} catch (Exception e) {
e.printStackTrace();
}
return Result.error("唤起失败");
}
/**
* 微信支付回调
* @param request
* @param response
*/
@RequestMapping(value = "/payNotify", method = {org.springframework.web.bind.annotation.RequestMethod.POST, org.springframework.web.bind.annotation.RequestMethod.GET})
public void payNotify(HttpServletRequest request, HttpServletResponse response) {
Map<String, String> map = new HashMap<>(12);
try {
String timestamp = request.getHeader("Wechatpay-Timestamp");
String nonce = request.getHeader("Wechatpay-Nonce");
String serialNo = request.getHeader("Wechatpay-Serial");
String signature = request.getHeader("Wechatpay-Signature");
log.info("timestamp:{} nonce:{} serialNo:{} signature:{}", timestamp, nonce, serialNo, signature);
String result = HttpKit.readData(request);
log.info("支付通知密文 {}", result);
// 需要通过证书序列号查找对应的证书verifyNotify 中有验证证书的序列号
String plainText = WxPayKit.verifyNotify(serialNo, result, signature, nonce, timestamp,
mchKey, platFormPath);
log.info("支付通知明文 {}", plainText);
if (StrUtil.isNotEmpty(plainText)) {
com.alibaba.fastjson.JSONObject plainTextJson = com.alibaba.fastjson.JSONObject.parseObject(plainText);
//订单号
String outTradeNo = plainTextJson.getString("out_trade_no");
//支付状态
String tradeState = plainTextJson.getString("trade_state");
if ("SUCCESS".equals(tradeState)) {
//支付成功
yxOrderService.update(new LambdaUpdateWrapper<YxOrder>().set(YxOrder::getOrderCode,outTradeNo).set(YxOrder::getOrderStatus,"2"));
}
//支付成功修改订单信息
response.setStatus(200);
map.put("code", "SUCCESS");
map.put("message", "SUCCESS");
} else {
response.setStatus(500);
map.put("code", "ERROR");
map.put("message", "签名错误");
}
response.setHeader("Content-type", ContentType.JSON.toString());
response.getOutputStream().write(JSONUtil.toJsonStr(map).getBytes(StandardCharsets.UTF_8));
response.flushBuffer();
} catch (Exception e) {
e.printStackTrace();
}
}
private String getSerialNumber() {
// 获取证书序列号
X509Certificate certificate = PayKit.getCertificate(certPath);
if (null != certificate) {
String serialNo = certificate.getSerialNumber().toString(16).toUpperCase();
// 提前两天检查证书是否有效
boolean isValid = PayKit.checkCertificateIsValid(certificate, mchid, -2);
log.info("证书是否可用 {} 证书有效期为 {}", isValid, DateUtil.format(certificate.getNotAfter(), DatePattern.NORM_DATETIME_PATTERN));
System.out.println("serialNo:" + serialNo);
return serialNo;
}
return null;
}
@RequestMapping("/get")
@ResponseBody
public String v3Get() {
// 获取平台证书列表
try {
IJPayHttpResponse response = WxPayApi.v3(
RequestMethodEnum.GET,
WxDomainEnum.CHINA.toString(),
OtherApiEnum.GET_CERTIFICATES.toString(),
mchid,
getSerialNumber(),
null,
certKeyPath,
""
);
String serialNumber = response.getHeader("Wechatpay-Serial");
String body = response.getBody();
int status = response.getStatus();
log.info("serialNumber: {}", serialNumber);
log.info("status: {}", status);
log.info("body: {}", body);
int isOk = 200;
if (status == isOk) {
JSONObject jsonObject = JSONUtil.parseObj(body);
JSONArray dataArray = jsonObject.getJSONArray("data");
// 默认认为只有一个平台证书
JSONObject encryptObject = dataArray.getJSONObject(0);
JSONObject encryptCertificate = encryptObject.getJSONObject("encrypt_certificate");
String associatedData = encryptCertificate.getStr("associated_data");
String cipherText = encryptCertificate.getStr("ciphertext");
String nonce = encryptCertificate.getStr("nonce");
String serialNo = encryptObject.getStr("serial_no");
final String platSerialNo = savePlatformCert(associatedData, nonce, cipherText, platFormPath);
log.info("平台证书序列号: {} serialNo: {}", platSerialNo, serialNo);
}
// 根据证书序列号查询对应的证书来验证签名结果
boolean verifySignature = WxPayKit.verifySignature(response, platFormPath);
System.out.println("verifySignature:" + verifySignature);
return body;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 保存平台证书
* @param associatedData associated_data
* @param nonce nonce
* @param cipherText cipherText
* @param certPath 证书保存路径
* @return
*/
private String savePlatformCert(String associatedData, String nonce, String cipherText, String certPath) {
try {
AesUtil aesUtil = new AesUtil(mchKey.getBytes(StandardCharsets.UTF_8));
// 平台证书密文解密
// encrypt_certificate 中的 associated_data nonce ciphertext
String publicKey = aesUtil.decryptToString(
associatedData.getBytes(StandardCharsets.UTF_8),
nonce.getBytes(StandardCharsets.UTF_8),
cipherText
);
// 保存证书
cn.hutool.core.io.file.FileWriter writer = new FileWriter(certPath);
writer.write(publicKey);
// 获取平台证书序列号
X509Certificate certificate = PayKit.getCertificate(new ByteArrayInputStream(publicKey.getBytes()));
return certificate.getSerialNumber().toString(16).toUpperCase();
} catch (Exception e) {
e.printStackTrace();
return e.getMessage();
}
}
}

View File

@ -0,0 +1,33 @@
package org.jeecg.modules.wx.model;
import lombok.Data;
import lombok.ToString;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* @Description
* @Author ZhouWenTao
* @Date 2024/2/19 17:37
*/
@Component
@ConfigurationProperties(prefix = "wx")
@Data
@ToString
public class WxPayV3Bean {
private String appId;
private String mchId;
private String mchSerialNo;
private String appSecret;
private String apiKey;
private String notifyUrl;
private String keyPath;
}

View File

@ -0,0 +1,91 @@
package org.jeecg.modules.wx.service;
import com.alibaba.fastjson.JSON;
import com.ijpay.core.enums.SignType;
import com.ijpay.core.enums.TradeType;
import com.ijpay.core.kit.WxPayKit;
import com.ijpay.wxpay.WxPayApi;
import com.ijpay.wxpay.WxPayApiConfig;
import com.ijpay.wxpay.model.UnifiedOrderModel;
import com.xkcoding.http.HttpUtil;
import org.apache.http.entity.StringEntity;
import org.jeecg.common.exception.JeecgBootException;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.Map;
/**
* @Description
* @Author ZhouWenTao
* @Date 2024/2/22 15:39
*/
public class WechatPayService {
/*appId*/
public static String appId = "wxb9cf28f42ffa35e5";
/** 商户号 */
public static String merchantId = "1667485494";
/** 商户证书序列号 */
public static String merchantSerialNumber = "hnjdsyxxkj1509067963615090658223";
/** 商户API私钥路径 */
public static String privateKeyPath = "E:\\workspace_3\\yitisheng\\yitisheng-api\\jeecg-module-system\\jeecg-system-start\\src\\main\\resources\\cert\\apiclient_key.pem";
/** 商户APIV3密钥 */
public static String apiV3Key = "hnjdsyxxkj1509067963615090658223";
public static void main(String[] args) {
//请求URL
String orderNo="1001";
String openId="oH4z-7GDqlLEu11rWIB4-_KySHDg";
WxPayApiConfig wxPayApiConfig = WxPayApiConfig.builder()
.appId(appId)
.mchId(merchantId)
.partnerKey(apiV3Key)
.certPath(privateKeyPath)
.domain("http://www.yitisheng.vip/order/wxpay/wxNotify")
.build();
String notifyUrl = wxPayApiConfig.getDomain() + "/order/wxpay/wxNotify";
Map<String, String> params = UnifiedOrderModel
.builder()
.appid(wxPayApiConfig.getAppId())
.mch_id(wxPayApiConfig.getMchId())
.nonce_str(WxPayKit.generateStr())
.body("问诊订单:" + orderNo)
.out_trade_no(orderNo)
.total_fee(getWXTotalAmount(new BigDecimal("0.01")))
.spbill_create_ip("127.0.0.1")
.notify_url(notifyUrl)
.trade_type(TradeType.JSAPI.getTradeType())
.openid(openId)
.build()
.createSign(wxPayApiConfig.getPartnerKey(), SignType.HMACSHA256);
String xmlResult = WxPayApi.pushOrder(false, params);
System.out.println("小程序统一下单返回结果:" + xmlResult);
Map<String, String> result = WxPayKit.xmlToMap(xmlResult);
String returnCode = result.get("return_code");
String returnMsg = result.get("return_msg");
if (!WxPayKit.codeIsOk(returnCode)) {
throw new JeecgBootException(returnMsg);
}
String resultCode = result.get("result_code");
if (!WxPayKit.codeIsOk(resultCode)) {
throw new JeecgBootException(returnMsg);
}
// 以下字段在 return_code result_code 都为 SUCCESS 的时候有返回
String prepayId = result.get("prepay_id");
Map<String, String> packageParams = WxPayKit.miniAppPrepayIdCreateSign(wxPayApiConfig.getAppId(), prepayId,
wxPayApiConfig.getPartnerKey(), SignType.HMACSHA256);
String jsonStr = JSON.toJSONString(packageParams);
System.out.println("小程序支付参数:"+jsonStr);
}
private static String getWXTotalAmount(BigDecimal totalAmount) {
BigDecimal payAmount = totalAmount.multiply(new BigDecimal(100));
DecimalFormat df = new DecimalFormat("0");
return df.format(payAmount);
}
}

View File

@ -0,0 +1,38 @@
package org.jeecg.modules.wx.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @Description
* @Author ZhouWenTao
* @Date 2024/2/19 17:37
*/
@Data
@Accessors(chain = true)
public class WXPayOrderReqVO {
@ApiModelProperty(value = "订单支付类型(商品订单;预约订单)",required = true)
@NotBlank(message = "订单支付类型不能为空!")
private String orderType;//附加数据回调时可根据这个数据辨别订单类型或其他
@ApiModelProperty(value = "总金额(单位:分)",required = true)
@NotNull(message = "总金额不能为空!")
private Integer totalPrice;
@ApiModelProperty(value = "商品名称",required = true)
@NotBlank(message = "商品名称不能为空!")
private String goodsName;
@ApiModelProperty(value = "openid",required = true)
@NotBlank(message = "openId不能为空")
private String openId;
@ApiModelProperty(value = "商品订单号",required = true)
@NotNull(message = "商品订单号不能为空!")
private Long orderSn;
}

View File

@ -0,0 +1,39 @@
package org.jeecg.modules.wx.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* @Description
* @Author ZhouWenTao
* @Date 2024/2/19 17:38
*/
@Data
@Accessors(chain = true)
public class WxPayRespVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 预支付交易会话标识小程序下单接口返回的prepay_id参数值
*/
@ApiModelProperty("预支付交易会话标识小程序下单接口返回的prepay_id参数值")
private String prepayId;
/**
* 随机字符串
*/
@ApiModelProperty("随机字符串")
private String nonceStr;
/**
* 时间戳
*/
@ApiModelProperty("时间戳")
private Long timeStamp;
/**
* 签名
*/
@ApiModelProperty("签名")
private String paySign;
}

View File

@ -0,0 +1,49 @@
package org.jeecg.modules.yx.constant;
import org.apache.commons.collections.CollectionUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @Description
* @Author ZhouWenTao
* @Date 2024/2/28 12:42
*/
public class YxConstant {
/**
* 当前年
*/
public static String nowYear = "2024";
/**
* 使用省控线年份
*/
public static String historyControlLineYear = "2023";
/**
* 旧日期
*/
public static List<String> oldYearList = Arrays.asList("2023", "2022", "2021", "2020");
public static List<String> cankaoMajorTypeList = Arrays.asList("音乐类", "舞蹈类", "播音与主持类", "表演类", "戏曲类");
public static List<String> betaMajorTypeList = Arrays.asList("美术与设计类", "书法类", "体育类");
public static List<String> cankaoYearList = Arrays.asList("2023", "2022");
public static String w1z1="文1专1";
public static String w1jiaz1="文1+专1";
public static BigDecimal bigDecimal0 = new BigDecimal(0);
//100倍率
public static BigDecimal bigDecimal100 = new BigDecimal("100");
public static BigDecimal bigDecimal150 = new BigDecimal("150");
public static BigDecimal bigDecimal200 = new BigDecimal("200");
public static BigDecimal bigDecimal95x = new BigDecimal("95");
public static BigDecimal bigDecimal85x = new BigDecimal("85");
public static BigDecimal bigDecimal80x = new BigDecimal("80");
public static BigDecimal bigDecimal05 = new BigDecimal("0.5");
public static BigDecimal bigDecimal075 = new BigDecimal("0.75");
public static BigDecimal bigDecimal2 = new BigDecimal("2");
}

View File

@ -0,0 +1,231 @@
package org.jeecg.modules.yx.controller;
import java.io.*;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.yx.dto.ArwuImportTestDTO;
import org.jeecg.modules.yx.dto.LiNianShuJuDTO;
import org.jeecg.modules.yx.dto.SchoolMajorImport3;
import org.jeecg.modules.yx.entity.*;
import org.jeecg.modules.yx.service.IYxArwuService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.yx.service.IYxSchoolChildService;
import org.jeecg.modules.yx.service.IYxSchoolService;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.authz.annotation.RequiresPermissions;
/**
* @Description: 软科排名表
* @Author: jeecg-boot
* @Date: 2024-03-03
* @Version: V1.0
*/
@Api(tags="软科排名表")
@RestController
@RequestMapping("/yx/yxArwu")
@Slf4j
public class YxArwuController extends JeecgController<YxArwu, IYxArwuService> {
@Autowired
private IYxArwuService yxArwuService;
@Autowired
private IYxSchoolService yxSchoolService;
@Autowired
private IYxSchoolChildService yxSchoolChildService;
/**
* 分页列表查询
*
* @param yxArwu
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "软科排名表-分页列表查询")
@ApiOperation(value="软科排名表-分页列表查询", notes="软科排名表-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<YxArwu>> queryPageList(YxArwu yxArwu,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<YxArwu> queryWrapper = QueryGenerator.initQueryWrapper(yxArwu, req.getParameterMap());
Page<YxArwu> page = new Page<YxArwu>(pageNo, pageSize);
IPage<YxArwu> pageList = yxArwuService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 添加
*
* @param yxArwu
* @return
*/
@AutoLog(value = "软科排名表-添加")
@ApiOperation(value="软科排名表-添加", notes="软科排名表-添加")
@RequiresPermissions("yx:yx_arwu:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody YxArwu yxArwu) {
yxArwuService.save(yxArwu);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param yxArwu
* @return
*/
@AutoLog(value = "软科排名表-编辑")
@ApiOperation(value="软科排名表-编辑", notes="软科排名表-编辑")
@RequiresPermissions("yx:yx_arwu:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody YxArwu yxArwu) {
yxArwuService.updateById(yxArwu);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "软科排名表-通过id删除")
@ApiOperation(value="软科排名表-通过id删除", notes="软科排名表-通过id删除")
@RequiresPermissions("yx:yx_arwu:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
yxArwuService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "软科排名表-批量删除")
@ApiOperation(value="软科排名表-批量删除", notes="软科排名表-批量删除")
@RequiresPermissions("yx:yx_arwu:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.yxArwuService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
//@AutoLog(value = "软科排名表-通过id查询")
@ApiOperation(value="软科排名表-通过id查询", notes="软科排名表-通过id查询")
@GetMapping(value = "/queryById")
public Result<YxArwu> queryById(@RequestParam(name="id",required=true) String id) {
YxArwu yxArwu = yxArwuService.getById(id);
if(yxArwu==null) {
return Result.error("未找到对应数据");
}
return Result.OK(yxArwu);
}
/**
* 导出excel
*
* @param request
* @param yxArwu
*/
@RequiresPermissions("yx:yx_arwu:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, YxArwu yxArwu) {
return super.exportXls(request, yxArwu, YxArwu.class, "软科排名表");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequiresPermissions("yx:yx_arwu:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, YxArwu.class);
}
@RequestMapping(value = "/importTest", method = RequestMethod.POST)
public Result<?> importTest() {
// 获取上传文件对象
File file = new File("C:\\Users\\Denim\\Desktop\\2023软科排名总榜.xlsx");
FileInputStream fileInputStream = null;
ImportParams params = new ImportParams();
params.setTitleRows(0);
params.setNeedSave(true);
int index = 0;
String type = null;
try {
fileInputStream = new FileInputStream(file);
List<ArwuImportTestDTO> list = ExcelImportUtil.importExcel(fileInputStream, ArwuImportTestDTO.class, params);
YxArwu yxArwu = new YxArwu();
List<YxArwu> yxArwuList = new ArrayList<>();
List<YxSchool> yxSchoolList = yxSchoolService.list();
Map<String,YxSchool> schoolMap=new LinkedHashMap<>();
for (YxSchool yxSchool : yxSchoolList) {
schoolMap.put(yxSchool.getSchoolName(),yxSchool);
}
String xxmc = null;
YxSchool yxSchool=null;
for (ArwuImportTestDTO arwuImportTestDTO : list) {
xxmc = arwuImportTestDTO.getXxmc();
yxSchool = schoolMap.get(xxmc);
if (yxSchool==null) {
System.out.println(xxmc);
continue;
}
}
//System.out.println(JSONArray.toJSONString(notlist));
} catch (FileNotFoundException fileNotFoundException) {
log.error("文件不存在," + file.getAbsolutePath());
throw new RuntimeException(fileNotFoundException);
} catch (StringIndexOutOfBoundsException e) {
} catch (Exception e) {
System.out.println(index);
throw new RuntimeException(e);
}
return Result.ok("文件导入成功!");
}
}

View File

@ -1,9 +1,7 @@
package org.jeecg.modules.yx.controller;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
@ -11,12 +9,17 @@ import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.commons.lang.StringUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.art.vo.QueryConversionScoreBatchVO;
import org.jeecg.modules.yx.constant.YxConstant;
import org.jeecg.modules.yx.entity.YxHistoryScoreBatch;
import org.jeecg.modules.yx.entity.YxHistoryScoreControlLine;
import org.jeecg.modules.yx.service.IYxHistoryScoreBatchService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -56,30 +59,32 @@ public class YxHistoryScoreBatchController extends JeecgController<YxHistoryScor
@Autowired
private IYxHistoryScoreBatchService yxHistoryScoreBatchService;
@ApiOperation(value = "获取分数批次段")
@GetMapping("/conversionScoreBatch")
public Result<?> conversionScoreBatch(QueryConversionScoreBatchVO queryConversionScoreBatchVO){
boolean wenFlag = queryConversionScoreBatchVO.getCognitioPolyclinic().equals("文科");//是否文科
String professionalCategory = queryConversionScoreBatchVO.getProfessionalCategory();//专业类别
BigDecimal culturalScore = queryConversionScoreBatchVO.getCulturalScore();//文化成绩
BigDecimal professionalScore = queryConversionScoreBatchVO.getProfessionalScore();//专业成绩
if (StringUtils.isBlank(professionalCategory) || culturalScore==null || professionalScore==null) {
return Result.OK("");
}
List<YxHistoryScoreBatch> historyScoreBatchList = yxHistoryScoreBatchService.listOrderByFieldBatch(new YxHistoryScoreBatch("2023", professionalCategory));
String scoreBatch = ScoreUtil.conversionScoreBatch(wenFlag, professionalCategory, culturalScore, professionalScore, historyScoreBatchList);
return Result.OK(scoreBatch);
/*List<YxHistoryScoreBatch> historyScoreBatchList = yxHistoryScoreBatchService.listOrderByFieldBatch(new YxHistoryScoreBatch(YxConstant.nowYear, professionalCategory));
LambdaQueryWrapper<YxHistoryScoreControlLine> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(YxHistoryScoreControlLine::getYear,YxConstant.nowYear);
lambdaQueryWrapper.eq(YxHistoryScoreControlLine::getCategory,queryConversionScoreBatchVO.getCognitioPolyclinic());
lambdaQueryWrapper.eq(YxHistoryScoreControlLine::getProfessionalCategory,professionalCategory);
lambdaQueryWrapper.last("ORDER BY year DESC,field(batch,'提前批','本科A段','本科B段','本科','高职高专')");
List<YxHistoryScoreControlLine> historyScoreControlLineList = yxHistoryScoreControlLineService.list(lambdaQueryWrapper);
String scoreBatch = ScoreUtil.conversionScoreBatch(culturalScore, professionalScore, historyScoreBatchList);
return Result.OK(scoreBatch);*/
return null;
}
/**
* 分页列表查询
*
* @param yxHistoryScoreBatch
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "历年录取控制分数线-分页列表查询")
@ApiOperation(value="历年录取控制分数线-分页列表查询", notes="历年录取控制分数线-分页列表查询")
@ -93,7 +98,6 @@ public class YxHistoryScoreBatchController extends JeecgController<YxHistoryScor
IPage<YxHistoryScoreBatch> pageList = yxHistoryScoreBatchService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 添加
*
@ -108,7 +112,7 @@ public class YxHistoryScoreBatchController extends JeecgController<YxHistoryScor
yxHistoryScoreBatchService.save(yxHistoryScoreBatch);
return Result.OK("添加成功!");
}
/**
* 编辑
*
@ -123,7 +127,7 @@ public class YxHistoryScoreBatchController extends JeecgController<YxHistoryScor
yxHistoryScoreBatchService.updateById(yxHistoryScoreBatch);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
@ -138,7 +142,7 @@ public class YxHistoryScoreBatchController extends JeecgController<YxHistoryScor
yxHistoryScoreBatchService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
@ -153,7 +157,7 @@ public class YxHistoryScoreBatchController extends JeecgController<YxHistoryScor
this.yxHistoryScoreBatchService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*

View File

@ -1,35 +1,23 @@
package org.jeecg.modules.yx.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.yx.entity.YxHistoryScoreControlLine;
import org.jeecg.modules.yx.service.IYxHistoryScoreControlLineService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
@ -72,6 +60,38 @@ public class YxHistoryScoreControlLineController extends JeecgController<YxHisto
return Result.OK(pageList);
}
/**
* 根据 year 分组
*/
//@AutoLog(value = "历年录取控制分数线-分页列表查询")
@ApiOperation(value="历年录取控制分数线-分页列表查询", notes="历年录取控制分数线-分页列表查询")
@GetMapping(value = "/listGroupByYear")
public Result<Map<String,List<YxHistoryScoreControlLine>>> listGroupByYear(YxHistoryScoreControlLine yxHistoryScoreControlLine) {
LambdaQueryWrapper<YxHistoryScoreControlLine> queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.eq(YxHistoryScoreControlLine::getProfessionalCategory,yxHistoryScoreControlLine.getProfessionalCategory());
queryWrapper.eq(YxHistoryScoreControlLine::getCategory,yxHistoryScoreControlLine.getCategory());
queryWrapper.last("ORDER BY year DESC,field(batch,'提前批','本科A段','本科B段','本科','高职高专')");
List<YxHistoryScoreControlLine> historyScoreControlLineList = yxHistoryScoreControlLineService.list(queryWrapper);
JSONObject responseBody=new JSONObject();
Map<String,List<YxHistoryScoreControlLine>> dataMaps=new LinkedHashMap<>();
List<YxHistoryScoreControlLine> list;
String year=null;
for (YxHistoryScoreControlLine historyScoreControlLine : historyScoreControlLineList) {
year = historyScoreControlLine.getYear();
list = dataMaps.getOrDefault(year,new ArrayList<>());
if ("本科A段".equals(historyScoreControlLine.getBatch())) {
YxHistoryScoreControlLine yxHistoryScoreControlLine1 = new YxHistoryScoreControlLine();
BeanUtils.copyProperties(historyScoreControlLine,yxHistoryScoreControlLine1);
yxHistoryScoreControlLine1.setBatch("本科提前批");
list.add(yxHistoryScoreControlLine1);
}
list.add(historyScoreControlLine);
dataMaps.put(year,list);
}
return Result.OK(dataMaps);
}
/**
* 添加
*
@ -168,10 +188,28 @@ public class YxHistoryScoreControlLineController extends JeecgController<YxHisto
* @param response
* @return
*/
@RequiresPermissions("yx:yx_history_score_control_line:importExcel")
// @RequiresPermissions("yx:yx_history_score_control_line:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, YxHistoryScoreControlLine.class);
List<String> list = Arrays.asList("音乐类,国际标准舞类,播音与主持类,表演类,编导制作类,书法类,艺术舞蹈类,美术与设计类,体育类".split(","));
LambdaQueryWrapper<YxHistoryScoreControlLine> queryWrapper = new LambdaQueryWrapper<>();
List<YxHistoryScoreControlLine> addList = new ArrayList<>();
for (String s : list) {
queryWrapper.clear();
queryWrapper.eq(YxHistoryScoreControlLine::getYear,"2023");
queryWrapper.last("ORDER BY year DESC,field(batch,'提前批','本科A段','本科B段','本科','高职高专')");
queryWrapper.eq(YxHistoryScoreControlLine::getProfessionalCategory,s);
List<YxHistoryScoreControlLine> historyScoreControlLineList = service.list(queryWrapper);
for (YxHistoryScoreControlLine yxHistoryScoreControlLine : historyScoreControlLineList) {
yxHistoryScoreControlLine.setProfessionalCategory(s);
yxHistoryScoreControlLine.setId(null);
yxHistoryScoreControlLine.setYear("2024");
addList.add(yxHistoryScoreControlLine);
}
}
service.saveBatch(addList);
//return super.importExcel(request, response, YxHistoryScoreControlLine.class);
return Result.OK();
}
}

View File

@ -251,7 +251,11 @@ public class YxMajorController extends JeecgController<YxMajor, IYxMajorService>
@RequiresPermissions("yx:yx_major:importExcel")
@RequestMapping(value = "/importExcel2", method = RequestMethod.POST)
public Result<?> importExcel2(HttpServletRequest request, HttpServletResponse response) throws FileNotFoundException {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
LambdaQueryWrapper<YxMajor> objectLambdaQueryWrapper = new LambdaQueryWrapper<>();
objectLambdaQueryWrapper.in(YxMajor::getMajorCode,130307,130310,130311,130401,130402,130403,130404,130405,130406,130407,130408,130409,130410,130411,130412,130413,130501,130502,130503,130504,130505,130506,130507,130508,130509,130510,130511,130512,130513);
yxMajorService.list();
/*MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
// 获取上传文件对象
@ -268,14 +272,14 @@ public class YxMajorController extends JeecgController<YxMajor, IYxMajorService>
MajorImport yxMajor1=null;
List<MajorImport> list2=new ArrayList<>();
List<YxMajor> list3=new ArrayList<>();
/*for (YxMajor yxMajor : majorList) {
*//*for (YxMajor yxMajor : majorList) {
yxMajor1 = majorMap.get(yxMajor.getMajorCode());
if (yxMajor1==null) {
list3.add(yxMajor);
continue;
}
BeanUtils.copyProperties(yxMajor1,yxMajor);
}*/
}*//*
for (MajorImport majorImport : list) {
YxMajor yxMajor = yxMajorMap.get(majorImport.getMajorName() + "_" + majorImport.getMajorCode());
@ -296,7 +300,7 @@ public class YxMajorController extends JeecgController<YxMajor, IYxMajorService>
e.printStackTrace();
}
}
}
}*/
return Result.error("文件导入失败!");
}
}

View File

@ -0,0 +1,178 @@
package org.jeecg.modules.yx.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.yx.entity.YxOrder;
import org.jeecg.modules.yx.service.IYxOrderService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.authz.annotation.RequiresPermissions;
/**
* @Description: 订单表
* @Author: jeecg-boot
* @Date: 2024-02-23
* @Version: V1.0
*/
@Api(tags="订单表")
@RestController
@RequestMapping("/yx/yxOrder")
@Slf4j
public class YxOrderController extends JeecgController<YxOrder, IYxOrderService> {
@Autowired
private IYxOrderService yxOrderService;
/**
* 分页列表查询
*
* @param yxOrder
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "订单表-分页列表查询")
@ApiOperation(value="订单表-分页列表查询", notes="订单表-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<YxOrder>> queryPageList(YxOrder yxOrder,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<YxOrder> queryWrapper = QueryGenerator.initQueryWrapper(yxOrder, req.getParameterMap());
Page<YxOrder> page = new Page<YxOrder>(pageNo, pageSize);
IPage<YxOrder> pageList = yxOrderService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 添加
*
* @param yxOrder
* @return
*/
@AutoLog(value = "订单表-添加")
@ApiOperation(value="订单表-添加", notes="订单表-添加")
@RequiresPermissions("yx:yx_order:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody YxOrder yxOrder) {
yxOrderService.save(yxOrder);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param yxOrder
* @return
*/
@AutoLog(value = "订单表-编辑")
@ApiOperation(value="订单表-编辑", notes="订单表-编辑")
@RequiresPermissions("yx:yx_order:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody YxOrder yxOrder) {
yxOrderService.updateById(yxOrder);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "订单表-通过id删除")
@ApiOperation(value="订单表-通过id删除", notes="订单表-通过id删除")
@RequiresPermissions("yx:yx_order:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
yxOrderService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "订单表-批量删除")
@ApiOperation(value="订单表-批量删除", notes="订单表-批量删除")
@RequiresPermissions("yx:yx_order:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.yxOrderService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
//@AutoLog(value = "订单表-通过id查询")
@ApiOperation(value="订单表-通过id查询", notes="订单表-通过id查询")
@GetMapping(value = "/queryById")
public Result<YxOrder> queryById(@RequestParam(name="id",required=true) String id) {
YxOrder yxOrder = yxOrderService.getById(id);
if(yxOrder==null) {
return Result.error("未找到对应数据");
}
return Result.OK(yxOrder);
}
/**
* 导出excel
*
* @param request
* @param yxOrder
*/
@RequiresPermissions("yx:yx_order:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, YxOrder yxOrder) {
return super.exportXls(request, yxOrder, YxOrder.class, "订单表");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequiresPermissions("yx:yx_order:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, YxOrder.class);
}
}

View File

@ -0,0 +1,178 @@
package org.jeecg.modules.yx.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.yx.entity.YxSchoolChild;
import org.jeecg.modules.yx.service.IYxSchoolChildService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.authz.annotation.RequiresPermissions;
/**
* @Description: 子级院校表
* @Author: jeecg-boot
* @Date: 2024-02-20
* @Version: V1.0
*/
@Api(tags="子级院校表")
@RestController
@RequestMapping("/yx/yxSchoolChild")
@Slf4j
public class YxSchoolChildController extends JeecgController<YxSchoolChild, IYxSchoolChildService> {
@Autowired
private IYxSchoolChildService yxSchoolChildService;
/**
* 分页列表查询
*
* @param yxSchoolChild
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "子级院校表-分页列表查询")
@ApiOperation(value="子级院校表-分页列表查询", notes="子级院校表-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<YxSchoolChild>> queryPageList(YxSchoolChild yxSchoolChild,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<YxSchoolChild> queryWrapper = QueryGenerator.initQueryWrapper(yxSchoolChild, req.getParameterMap());
Page<YxSchoolChild> page = new Page<YxSchoolChild>(pageNo, pageSize);
IPage<YxSchoolChild> pageList = yxSchoolChildService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 添加
*
* @param yxSchoolChild
* @return
*/
@AutoLog(value = "子级院校表-添加")
@ApiOperation(value="子级院校表-添加", notes="子级院校表-添加")
@RequiresPermissions("yx:yx_school_child:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody YxSchoolChild yxSchoolChild) {
yxSchoolChildService.save(yxSchoolChild);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param yxSchoolChild
* @return
*/
@AutoLog(value = "子级院校表-编辑")
@ApiOperation(value="子级院校表-编辑", notes="子级院校表-编辑")
@RequiresPermissions("yx:yx_school_child:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody YxSchoolChild yxSchoolChild) {
yxSchoolChildService.updateById(yxSchoolChild);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "子级院校表-通过id删除")
@ApiOperation(value="子级院校表-通过id删除", notes="子级院校表-通过id删除")
@RequiresPermissions("yx:yx_school_child:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
yxSchoolChildService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "子级院校表-批量删除")
@ApiOperation(value="子级院校表-批量删除", notes="子级院校表-批量删除")
@RequiresPermissions("yx:yx_school_child:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.yxSchoolChildService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
//@AutoLog(value = "子级院校表-通过id查询")
@ApiOperation(value="子级院校表-通过id查询", notes="子级院校表-通过id查询")
@GetMapping(value = "/queryById")
public Result<YxSchoolChild> queryById(@RequestParam(name="id",required=true) String id) {
YxSchoolChild yxSchoolChild = yxSchoolChildService.getById(id);
if(yxSchoolChild==null) {
return Result.error("未找到对应数据");
}
return Result.OK(yxSchoolChild);
}
/**
* 导出excel
*
* @param request
* @param yxSchoolChild
*/
@RequiresPermissions("yx:yx_school_child:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, YxSchoolChild yxSchoolChild) {
return super.exportXls(request, yxSchoolChild, YxSchoolChild.class, "子级院校表");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequiresPermissions("yx:yx_school_child:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, YxSchoolChild.class);
}
}

View File

@ -1,14 +1,29 @@
package org.jeecg.modules.yx.controller;
import java.util.Arrays;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.stream.CollectorUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.AssertUtils;
import org.jeecg.modules.yx.dto.LiNianShuJuDTO;
import org.jeecg.modules.yx.dto.SchoolMajorImport3;
import org.jeecg.modules.yx.dto.YxSchoolMajorDTO;
import org.jeecg.modules.yx.entity.YxSchoolMajor;
import org.jeecg.modules.yx.service.IYxSchoolMajorService;
import org.jeecg.modules.yx.entity.*;
import org.jeecg.modules.yx.service.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -16,6 +31,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
@ -24,151 +41,159 @@ import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.authz.annotation.RequiresPermissions;
/**
/**
* @Description: 学校专业关联表
* @Author: jeecg-boot
* @Date: 2023-08-27
* @Date: 2023-08-27
* @Version: V1.0
*/
@Api(tags="学校专业关联表")
@Api(tags = "学校专业关联表")
@RestController
@RequestMapping("/yx/yxSchoolMajor")
@Slf4j
public class YxSchoolMajorController extends JeecgController<YxSchoolMajor, IYxSchoolMajorService> {
@Autowired
private IYxSchoolMajorService yxSchoolMajorService;
/**
* 分页列表查询
*
* @param yxSchoolMajor
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "学校专业关联表-分页列表查询")
@ApiOperation(value="学校专业关联表-分页列表查询", notes="学校专业关联表-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<YxSchoolMajor>> queryPageList(YxSchoolMajor yxSchoolMajor,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<YxSchoolMajor> queryWrapper = QueryGenerator.initQueryWrapper(yxSchoolMajor, req.getParameterMap());
Page<YxSchoolMajor> page = new Page<YxSchoolMajor>(pageNo, pageSize);
IPage<YxSchoolMajor> pageList = yxSchoolMajorService.page(page, queryWrapper);
return Result.OK(pageList);
}
@ApiOperation(value="学校专业关联表-分页列表查询,更多字段")
@GetMapping(value = "/dtoPage")
public Result<IPage<YxSchoolMajorDTO>> dtoPage(YxSchoolMajor yxSchoolMajor,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
IPage<YxSchoolMajorDTO> pageList = yxSchoolMajorService.dtoPage(new Page<>(pageNo, pageSize),yxSchoolMajor);
return Result.OK(pageList);
}
/**
* 添加
*
* @param yxSchoolMajor
* @return
*/
@AutoLog(value = "学校专业关联表-添加")
@ApiOperation(value="学校专业关联表-添加", notes="学校专业关联表-添加")
@RequiresPermissions("yx:yx_school_major:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody YxSchoolMajor yxSchoolMajor) {
String majorCode = yxSchoolMajor.getMajorCode();
String schoolCode = yxSchoolMajor.getSchoolCode();
AssertUtils.notEmpty(schoolCode,"请选择[学校]!");
AssertUtils.notEmpty(majorCode,"请选择[专业]!");
AssertUtils.notNull(yxSchoolMajor.getTuition(),"请输入[学费]!");
AssertUtils.notTrue(yxSchoolMajorService.exist(yxSchoolMajor),String.format("专业-[%s]-已经录入",majorCode));
yxSchoolMajorService.save(yxSchoolMajor);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param yxSchoolMajor
* @return
*/
@AutoLog(value = "学校专业关联表-编辑")
@ApiOperation(value="学校专业关联表-编辑", notes="学校专业关联表-编辑")
@RequiresPermissions("yx:yx_school_major:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody YxSchoolMajor yxSchoolMajor) {
String id = yxSchoolMajor.getId();
String majorCode = yxSchoolMajor.getMajorCode();
String schoolCode = yxSchoolMajor.getSchoolCode();
AssertUtils.notEmpty(schoolCode,"请选择[学校]!");
AssertUtils.notEmpty(majorCode,"请选择[专业]!");
AssertUtils.notNull(yxSchoolMajor.getTuition(),"请输入[学费]!");
AssertUtils.notTrue(yxSchoolMajorService.exist(yxSchoolMajor),String.format("专业-[%s]-已经录入",majorCode));
yxSchoolMajorService.updateById(yxSchoolMajor);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "学校专业关联表-通过id删除")
@ApiOperation(value="学校专业关联表-通过id删除", notes="学校专业关联表-通过id删除")
@RequiresPermissions("yx:yx_school_major:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
yxSchoolMajorService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "学校专业关联表-批量删除")
@ApiOperation(value="学校专业关联表-批量删除", notes="学校专业关联表-批量删除")
@RequiresPermissions("yx:yx_school_major:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.yxSchoolMajorService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
//@AutoLog(value = "学校专业关联表-通过id查询")
@ApiOperation(value="学校专业关联表-通过id查询", notes="学校专业关联表-通过id查询")
@GetMapping(value = "/queryById")
public Result<YxSchoolMajor> queryById(@RequestParam(name="id",required=true) String id) {
YxSchoolMajor yxSchoolMajor = yxSchoolMajorService.getById(id);
if(yxSchoolMajor==null) {
return Result.error("未找到对应数据");
}
return Result.OK(yxSchoolMajor);
}
@Autowired
private IYxSchoolMajorService yxSchoolMajorService;
@Autowired
private IYxMajorService yxMajorService;
@Autowired
private IYxSchoolChildService yxSchoolChildService;
@Autowired
private IYxSchoolService yxSchoolService;
@Autowired
private IYxHistoryScoreControlLineService yxHistoryScoreControlLineService;
/**
* 导出excel
*
* @param request
* @param yxSchoolMajor
*/
* 分页列表查询
*
* @param yxSchoolMajor
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "学校专业关联表-分页列表查询")
@ApiOperation(value = "学校专业关联表-分页列表查询", notes = "学校专业关联表-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<YxSchoolMajor>> queryPageList(YxSchoolMajor yxSchoolMajor,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<YxSchoolMajor> queryWrapper = QueryGenerator.initQueryWrapper(yxSchoolMajor, req.getParameterMap());
Page<YxSchoolMajor> page = new Page<YxSchoolMajor>(pageNo, pageSize);
IPage<YxSchoolMajor> pageList = yxSchoolMajorService.page(page, queryWrapper);
return Result.OK(pageList);
}
@ApiOperation(value = "学校专业关联表-分页列表查询,更多字段")
@GetMapping(value = "/dtoPage")
public Result<IPage<YxSchoolMajorDTO>> dtoPage(YxSchoolMajor yxSchoolMajor,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
IPage<YxSchoolMajorDTO> pageList = yxSchoolMajorService.dtoPage(new Page<>(pageNo, pageSize), yxSchoolMajor);
return Result.OK(pageList);
}
/**
* 添加
*
* @param yxSchoolMajor
* @return
*/
@AutoLog(value = "学校专业关联表-添加")
@ApiOperation(value = "学校专业关联表-添加", notes = "学校专业关联表-添加")
@RequiresPermissions("yx:yx_school_major:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody YxSchoolMajor yxSchoolMajor) {
String majorCode = yxSchoolMajor.getMajorCode();
String schoolCode = yxSchoolMajor.getSchoolCode();
AssertUtils.notEmpty(schoolCode, "请选择[学校]!");
AssertUtils.notEmpty(majorCode, "请选择[专业]!");
AssertUtils.notNull(yxSchoolMajor.getTuition(), "请输入[学费]!");
AssertUtils.notTrue(yxSchoolMajorService.exist(yxSchoolMajor), String.format("专业-[%s]-已经录入", majorCode));
yxSchoolMajorService.save(yxSchoolMajor);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param yxSchoolMajor
* @return
*/
@AutoLog(value = "学校专业关联表-编辑")
@ApiOperation(value = "学校专业关联表-编辑", notes = "学校专业关联表-编辑")
@RequiresPermissions("yx:yx_school_major:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
public Result<String> edit(@RequestBody YxSchoolMajor yxSchoolMajor) {
String id = yxSchoolMajor.getId();
String majorCode = yxSchoolMajor.getMajorCode();
String schoolCode = yxSchoolMajor.getSchoolCode();
AssertUtils.notEmpty(schoolCode, "请选择[学校]!");
AssertUtils.notEmpty(majorCode, "请选择[专业]!");
AssertUtils.notNull(yxSchoolMajor.getTuition(), "请输入[学费]!");
AssertUtils.notTrue(yxSchoolMajorService.exist(yxSchoolMajor), String.format("专业-[%s]-已经录入", majorCode));
yxSchoolMajorService.updateById(yxSchoolMajor);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "学校专业关联表-通过id删除")
@ApiOperation(value = "学校专业关联表-通过id删除", notes = "学校专业关联表-通过id删除")
@RequiresPermissions("yx:yx_school_major:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
yxSchoolMajorService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "学校专业关联表-批量删除")
@ApiOperation(value = "学校专业关联表-批量删除", notes = "学校专业关联表-批量删除")
@RequiresPermissions("yx:yx_school_major:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
this.yxSchoolMajorService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
//@AutoLog(value = "学校专业关联表-通过id查询")
@ApiOperation(value = "学校专业关联表-通过id查询", notes = "学校专业关联表-通过id查询")
@GetMapping(value = "/queryById")
public Result<YxSchoolMajor> queryById(@RequestParam(name = "id", required = true) String id) {
YxSchoolMajor yxSchoolMajor = yxSchoolMajorService.getById(id);
if (yxSchoolMajor == null) {
return Result.error("未找到对应数据");
}
return Result.OK(yxSchoolMajor);
}
/**
* 导出excel
*
* @param request
* @param yxSchoolMajor
*/
@RequiresPermissions("yx:yx_school_major:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, YxSchoolMajor yxSchoolMajor) {
@ -176,16 +201,290 @@ public class YxSchoolMajorController extends JeecgController<YxSchoolMajor, IYxS
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequiresPermissions("yx:yx_school_major:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, YxSchoolMajor.class);
}
/**
* 刷新专业信息
*/
@RequestMapping(value = "/importExcel1", method = RequestMethod.POST)
public Result<?> importExcel1(HttpServletRequest request, HttpServletResponse response) {
// 获取上传文件对象
File file = new File("C:\\Users\\Denim\\Desktop\\数据信息\\2023河南招生计划统计.xlsx");
FileInputStream fileInputStream = null;
ImportParams params = new ImportParams();
params.setTitleRows(0);
params.setNeedSave(true);
int index = 0;
String type = null;
Set<LiNianShuJuDTO> notSchoolList = new HashSet<>();
Map<String,String> benMajorNameCodeMap = new LinkedHashMap<>();
Map<String,String> zhuanMajorNameCodeMap = new LinkedHashMap<>();
List<YxMajor> yxMajorList = yxMajorService.list(new LambdaQueryWrapper<YxMajor>().groupBy(YxMajor::getMajorCode));
for (YxMajor yxMajor : yxMajorList) {
if ("1".equals(yxMajor.getEducationalLevel())) {
benMajorNameCodeMap.put(yxMajor.getMajorName(),yxMajor.getMajorCode());
}else{
zhuanMajorNameCodeMap.put(yxMajor.getMajorName(),yxMajor.getMajorCode());
}
}
try {
fileInputStream = new FileInputStream(file);
List<SchoolMajorImport3> list = ExcelImportUtil.importExcel(fileInputStream, SchoolMajorImport3.class, params);
List<SchoolMajorImport3> notlist = new ArrayList<>();
String zspc = null;//招生批次
String yxmc = null;//院校名称
String yxdm = null;//院校代码
String zymc = null;
String majorName = "";
String majorCode = "";
String zydm = null;
String jhs = null;
String xz = null;
String xf = null;
String zybz = null;
Integer level = 1;
LambdaQueryWrapper<YxSchoolMajor> queryWrapper = new LambdaQueryWrapper<>();
List<YxSchoolMajor> schoolMajorList = new ArrayList<>();
StringBuilder mainSubjects = new StringBuilder();
YxSchoolMajor schoolMajor = null;
//音乐表演 专业
List<String> yybyList = Arrays.asList("表演", "音乐表演", "流行音乐", "音乐学",
"音乐制作","航空服务艺术与管理","音乐与舞蹈学类","戏曲音乐");
//音乐教育
List<String> yyjyList = Arrays.asList("音乐学", "作曲与作曲技术理论", "音乐治疗", "音乐教育", "录音艺术"
,"录音技术与艺术","钢琴调律","音像技术","艺术与科技","艺术管理","作曲技术");
List<YxSchoolChild> yxSchoolChildList = yxSchoolChildService.list();
List<String> schoolCodeList = yxSchoolChildList.stream().map(YxSchoolChild::getSchoolCode).collect(Collectors.toList());
Set<String> notSchoolCodeList = new HashSet<>();
Set<String> notSchoolNameList = new HashSet<>();
Map<String,String> notSchoolCodeMap = new LinkedHashMap<>();
for (SchoolMajorImport3 schoolMajorImport3 : list) {
level = 1;
schoolMajor = new YxSchoolMajor();
index++;
if (index == 899) {
//index++;
System.out.println(index);
}
zspc = schoolMajorImport3.getZspc();
yxmc = schoolMajorImport3.getYxmc();
yxdm = schoolMajorImport3.getYxdm();
zymc = schoolMajorImport3.getZymc();
zydm = schoolMajorImport3.getZydm();
jhs = schoolMajorImport3.getJhs();
xz = schoolMajorImport3.getXz();
xf = schoolMajorImport3.getXf();
zybz = schoolMajorImport3.getZybz();
if (zspc.contains("音乐类")) {
mainSubjects = new StringBuilder();
schoolMajor.setMajorType("音乐类");
if (zspc.contains("器乐")) {
mainSubjects.append("器乐").append(",");
}
if (zspc.contains("声乐")) {
mainSubjects.append("声乐").append(",");
}
if (StringUtils.isNotBlank(mainSubjects)) {
schoolMajor.setMainSubjects(mainSubjects.substring(0, mainSubjects.length() - 1));
;
}
//
for (String s : yybyList) {
if (zymc.contains(s)) {
schoolMajor.setMajorTypeChild("音乐表演");
break;
}
}
for (String s : yyjyList) {
if (zymc.contains(s)) {
schoolMajor.setMajorTypeChild("音乐教育");
break;
}
}
if (StringUtils.isBlank(schoolMajor.getMajorTypeChild())) {
notlist.add(schoolMajorImport3);
continue;
}
}
else if (zspc.contains("美术类")) {
schoolMajor.setMajorType("美术与设计类");
}
else if (zspc.contains("舞蹈类")) {
schoolMajor.setMajorType("舞蹈类");
if (zspc.contains("艺术舞蹈")) {
schoolMajor.setMainSubjects("艺术舞蹈");
} else if (zspc.contains("国际标准")) {
schoolMajor.setMainSubjects("国际标准舞");
} else {
notlist.add(schoolMajorImport3);
continue;
}
}
else if (zspc.contains("播音")) {
schoolMajor.setMajorType("播音与主持类");
}
else if (zspc.contains("表演类")) {
schoolMajor.setMajorType("表演类");
}
else if (zspc.contains("体育类")) {
schoolMajor.setMajorType("体育类");
}else if (zspc.contains("书法类")) {
schoolMajor.setMajorType("书法类");
}else{
//美术
schoolMajor.setMajorType("美术与设计类");
//notlist.add(schoolMajorImport3);
//continue;
}
//文理分科
if(zspc.contains("文理综合")){
notlist.add(schoolMajorImport3);
continue;
}
else if(zspc.contains("文科")){
schoolMajor.setCategory("文科");
}
else if(zspc.contains("理科")){
schoolMajor.setCategory("理科");
}
else{
notlist.add(schoolMajorImport3);
}
//批次
if (zspc.contains("提前批")) {
schoolMajor.setBatch("提前批");
}
else if(zspc.contains("本科A段")){
schoolMajor.setBatch("本科A段");
}
else if(zspc.contains("本科B段")){
schoolMajor.setBatch("本科B段");
}
else if(zspc.contains("本科") && zspc.contains("体育")){
schoolMajor.setBatch("本科");
}
else if(zspc.contains("高职高专")){
level = 2;
schoolMajor.setBatch("高职高专");
}
else{
notlist.add(schoolMajorImport3);
}
if (!schoolCodeList.contains(yxdm)) {
notSchoolCodeList.add(yxdm);
yxmc = yxmc.replace("(","").replace(")",")");
//yxmc = yxmc.replace("民办","");
notSchoolNameList.add(yxmc);
notSchoolCodeMap.put(yxdm,yxmc);
}
zymc = zymc.replace("(","").replace(")","");
majorName = zymc;
int i2 = zymc.indexOf("");
if (i2!=-1) {
majorName = zymc.substring(0,i2);
}
if (level ==1) {
majorCode = benMajorNameCodeMap.get(majorName);
}else{
majorCode = zhuanMajorNameCodeMap.get(majorName);
}
if (StringUtils.isBlank(majorCode)) {
notlist.add(schoolMajorImport3);
}
schoolMajor.setSchoolCode(yxdm);
schoolMajor.setMajorName(zymc);
schoolMajor.setMajorCode(majorCode);
schoolMajor.setEnrollmentCode(zydm);
schoolMajor.setPlanNum(StringUtils.isNotBlank(jhs)?Integer.valueOf(jhs):0);//计划数
schoolMajor.setSemester(xz);//学制
//学费
if (StringUtils.isBlank(xf)||xf.contains("待定")) {
schoolMajor.setTuition(new BigDecimal(0));
}else{
schoolMajor.setTuition(new BigDecimal(xf));
}
schoolMajor.setDetail(zybz);
schoolMajorList.add(schoolMajor);
}
yxSchoolMajorService.saveBatch(schoolMajorList);
JSONObject.toJSONString(notSchoolCodeMap);
System.out.println("不存在的专业信息:");
notSchoolNameList.stream().collect(Collectors.joining("','"));
System.out.println(notlist.size());
//System.out.println(JSONArray.toJSONString(notlist));
} catch (FileNotFoundException fileNotFoundException) {
log.error("文件不存在," + file.getAbsolutePath());
throw new RuntimeException(fileNotFoundException);
} catch (StringIndexOutOfBoundsException e) {
} catch (Exception e) {
System.out.println(index);
throw new RuntimeException(e);
}
return Result.ok("文件导入成功!");
}
@RequestMapping(value = "/importExcel2", method = RequestMethod.POST)
public Result<?> importExcel2(HttpServletRequest request, HttpServletResponse response) {
String s = "{\"1966\":\"深圳技术大学\",\"4445\":\"菏泽学院\",\"5710\":\"吉林工商学院\",\"6001\":\"郑州大学河南音乐学院\",\"6049\":\"周口师范学院\",\"6198\":\"郑州美术学院(原郑州轻工业大学易斯顿美术学院)(民办)\",\"6312\":\"平顶山文化艺术职业学院(民办)\",\"6324\":\"郑州轻工业大学(与河南轻工职业学院联办)\",\"6390\":\"郑州黄河护理职业学院(民办)\",\"6402\":\"洛阳师范学院\",\"6405\":\"南阳师范学院\",\"6408\":\"商丘师范学院\",\"6409\":\"周口师范学院\",\"6411\":\"河南师范大学\",\"6412\":\"信阳师范大学\",\"6702\":\"南昌应用技术师范学院(原江西科技师范大学理工学院)(民办)\",\"6806\":\"黑龙江财经学院(民办)\",\"6808\":\"黑龙江外国语学院(民办)\",\"6809\":\"哈尔滨剑桥学院(民办)\",\"6810\":\"黑龙江工程学院昆仑旅游学院(独立学院)\",\"6841\":\"荆州学院(原长江大学工程技术学院)(民办)\",\"6951\":\"南京理工大学泰州科技学院(独立学院)\",\"6971\":\"华南农业大学珠江学院(独立学院)\",\"7333\":\"和田师范高职高专学校\",\"7406\":\"泉州幼儿师范高等高职高专学校\",\"7727\":\"唐山幼儿师范高等高职高专学校\",\"8226\":\"广西城市职业大学(民办)\",\"8513\":\"江苏电子信息职业学院\",\"8616\":\"湖北体育职业学院\",\"8675\":\"四川科技职业学院(民办)\",\"8728\":\"四川长江职业学院(民办)\",\"8731\":\"宿迁泽达职业技术学院(民办)\",\"8747\":\"泉州轻工职业学院(民办)\",\"8972\":\"阳江职业技术学院\",\"9041\":\"云南理工职业学院(民办)\",\"9043\":\"喀什职业技术学院\",\"9097\":\"重庆建筑科技职业学院(民办)\",\"9137\":\"民办四川天一学院(民办)\",\"9155\":\"四川电子机械职业技术学院(民办)\",\"9411\":\"北京京北职业技术学院\",\"9541\":\"江西科技职业学院(民办)\",\"9621\":\"德阳城市轨道交通职业学院(民办)\",\"9634\":\"铁门关职业技术学院\",\"9662\":\"潍坊环境工程职业学院(民办)\",\"9691\":\"重庆智能工程职业学院(民办)\",\"9694\":\"南充电影工业职业学院(民办)\",\"9695\":\"绵阳飞行职业学院(民办)\",\"9697\":\"德阳农业科技职业学院(民办)\",\"9720\":\"建东职业技术学院(民办)\",\"9902\":\"中央美术学院\",\"1100\":\"中南民族大学\",\"1310\":\"同济大学\",\"2415\":\"浙江工业大学\",\"3060\":\"中国民用航空飞行学院\",\"3910\":\"盐城师范学院\",\"5565\":\"福建技术师范学院\",\"6604\":\"重庆人文科技学院(民办)\",\"6859\":\"湖北工程学院新技术学院(独立学院)\",\"7304\":\"甘肃民族师范学院\",\"9548\":\"山东海事职业学院(民办)\",\"9876\":\"吉安职业技术学院\",\"9906\":\"北京舞蹈学院\",\"9910\":\"天津美术学院\",\"9915\":\"鲁迅美术学院\",\"9930\":\"湖北美术学院\",\"9935\":\"广州美术学院\",\"9940\":\"四川美术学院\"}";
Map<String,String> notSchoolNameList = new LinkedHashMap<>();
JSONObject jsonObject = JSONObject.parseObject(s);
List<YxSchool> schoolList = yxSchoolService.list();
Map<String, String> schoolNameList = schoolList.stream().collect(Collectors.toMap(YxSchool::getSchoolName, YxSchool::getId));
YxSchoolChild yxSchoolChild = null;
List<YxSchoolChild> yxSchoolChildList = new ArrayList<>();
for (String schoolCode : jsonObject.keySet()) {
String schoolName = jsonObject.getString(schoolCode);
int i = schoolName.indexOf("");
if (i!=-1.) {
schoolName = schoolName.substring(0,i);
}
String schoolId = schoolNameList.get(schoolName);
if (StringUtils.isBlank(schoolId)) {
notSchoolNameList.put(schoolCode,schoolName);
}else{
yxSchoolChild = new YxSchoolChild();
yxSchoolChild.setSchoolCode(schoolCode);
yxSchoolChild.setSchoolId(schoolId);
yxSchoolChild.setSchoolName(schoolName);
//yxSchoolChildService.save(yxSchoolChild);
}
}
System.out.println("qqqqq:");
System.out.println(notSchoolNameList.size());
return Result.OK();
}
@RequestMapping(value = "/importExcel3",method = RequestMethod.POST)
public Result<?> importExcel3(){
service.updateRulesEnrollProbabilityByOldLastYearData();
return Result.OK();
}
}

View File

@ -0,0 +1,208 @@
package org.jeecg.modules.yx.controller;
import java.io.*;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.yx.dto.LiNianShuJuDTO;
import org.jeecg.modules.yx.dto.SchoolMajorImport3;
import org.jeecg.modules.yx.entity.*;
import org.jeecg.modules.yx.service.IYxSchoolMasterDegreeService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.yx.service.IYxSchoolService;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.authz.annotation.RequiresPermissions;
/**
* @Description: 院校硕士研究生信息
* @Author: jeecg-boot
* @Date: 2024-03-03
* @Version: V1.0
*/
@Api(tags="院校硕士研究生信息")
@RestController
@RequestMapping("/yx/yxSchoolMasterDegree")
@Slf4j
public class YxSchoolMasterDegreeController extends JeecgController<YxSchoolMasterDegree, IYxSchoolMasterDegreeService> {
@Autowired
private IYxSchoolMasterDegreeService yxSchoolMasterDegreeService;
@Autowired
private IYxSchoolService yxSchoolService;
/**
* 分页列表查询
*/
//@AutoLog(value = "院校硕士研究生信息-分页列表查询")
@ApiOperation(value="院校硕士研究生信息-分页列表查询", notes="院校硕士研究生信息-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<YxSchoolMasterDegree>> queryPageList(YxSchoolMasterDegree yxSchoolMasterDegree,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<YxSchoolMasterDegree> queryWrapper = QueryGenerator.initQueryWrapper(yxSchoolMasterDegree, req.getParameterMap());
Page<YxSchoolMasterDegree> page = new Page<YxSchoolMasterDegree>(pageNo, pageSize);
IPage<YxSchoolMasterDegree> pageList = yxSchoolMasterDegreeService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 添加
*/
@AutoLog(value = "院校硕士研究生信息-添加")
@ApiOperation(value="院校硕士研究生信息-添加", notes="院校硕士研究生信息-添加")
@RequiresPermissions("yx:yx_school_master_degree:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody YxSchoolMasterDegree yxSchoolMasterDegree) {
yxSchoolMasterDegreeService.save(yxSchoolMasterDegree);
return Result.OK("添加成功!");
}
/**
* 编辑
*/
@AutoLog(value = "院校硕士研究生信息-编辑")
@ApiOperation(value="院校硕士研究生信息-编辑", notes="院校硕士研究生信息-编辑")
@RequiresPermissions("yx:yx_school_master_degree:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody YxSchoolMasterDegree yxSchoolMasterDegree) {
yxSchoolMasterDegreeService.updateById(yxSchoolMasterDegree);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*/
@AutoLog(value = "院校硕士研究生信息-通过id删除")
@ApiOperation(value="院校硕士研究生信息-通过id删除", notes="院校硕士研究生信息-通过id删除")
@RequiresPermissions("yx:yx_school_master_degree:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
yxSchoolMasterDegreeService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*/
@AutoLog(value = "院校硕士研究生信息-批量删除")
@ApiOperation(value="院校硕士研究生信息-批量删除", notes="院校硕士研究生信息-批量删除")
@RequiresPermissions("yx:yx_school_master_degree:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.yxSchoolMasterDegreeService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*/
//@AutoLog(value = "院校硕士研究生信息-通过id查询")
@ApiOperation(value="院校硕士研究生信息-通过id查询", notes="院校硕士研究生信息-通过id查询")
@GetMapping(value = "/queryById")
public Result<YxSchoolMasterDegree> queryById(@RequestParam(name="id",required=true) String id) {
YxSchoolMasterDegree yxSchoolMasterDegree = yxSchoolMasterDegreeService.getById(id);
if(yxSchoolMasterDegree==null) {
return Result.error("未找到对应数据");
}
return Result.OK(yxSchoolMasterDegree);
}
/**
* 导出excel
*/
@RequiresPermissions("yx:yx_school_master_degree:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, YxSchoolMasterDegree yxSchoolMasterDegree) {
return super.exportXls(request, yxSchoolMasterDegree, YxSchoolMasterDegree.class, "院校硕士研究生信息");
}
/**
* 通过excel导入数据
*/
@RequiresPermissions("yx:yx_school_master_degree:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, YxSchoolMasterDegree.class);
}
/**
* 刷新专业信息
*/
@RequestMapping(value = "/importExcel1", method = RequestMethod.POST)
public Result<?> importExcel1(HttpServletRequest request, HttpServletResponse response) {
// 获取上传文件对象
File file = new File("C:\\Users\\Denim\\Desktop\\硕士研究生.xlsx");
FileInputStream fileInputStream = null;
ImportParams params = new ImportParams();
params.setTitleRows(0);
params.setNeedSave(true);
int index = 0;
try {
fileInputStream = new FileInputStream(file);
List<YxSchoolMasterDegree> list = ExcelImportUtil.importExcel(fileInputStream, YxSchoolMasterDegree.class, params);
List<String> schoolNameList=new ArrayList<>();
List<YxSchool> yxSchoolList = null;
LambdaQueryWrapper<YxSchool> queryWrapper = new LambdaQueryWrapper<>();
String schoolName = null;
String sn=null;
int khLast=0;
for (YxSchoolMasterDegree yxSchoolMasterDegree : list) {
schoolName = yxSchoolMasterDegree.getSchoolName();
khLast = schoolName.indexOf(")");
if (khLast!=-1) {
sn = schoolName.substring(khLast+1);
}
queryWrapper.clear();
queryWrapper.eq(YxSchool::getSchoolName,sn);
yxSchoolList = yxSchoolService.list(queryWrapper);
if (CollectionUtils.isEmpty(yxSchoolList)) {
schoolNameList.add(sn);
continue;
}
}
System.out.println("缺少院校编码");
System.out.println(schoolNameList.size());
} catch (FileNotFoundException fileNotFoundException) {
log.error("文件不存在," + file.getAbsolutePath());
throw new RuntimeException(fileNotFoundException);
} catch (StringIndexOutOfBoundsException e) {
} catch (Exception e) {
System.out.println(index);
throw new RuntimeException(e);
}
return Result.ok("文件导入成功!");
}
}

View File

@ -13,12 +13,9 @@ import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.AssertUtils;
import org.jeecg.common.util.RedisUtil;
import org.jeecg.modules.yx.entity.YxHistoryScoreBatch;
import org.jeecg.modules.yx.entity.YxUserScore;
import org.jeecg.modules.yx.entity.YxVolunteer;
import org.jeecg.modules.yx.service.IYxHistoryScoreBatchService;
import org.jeecg.modules.yx.service.IYxUserScoreService;
import org.jeecg.modules.yx.service.IYxVolunteerService;
import org.jeecg.modules.yx.constant.YxConstant;
import org.jeecg.modules.yx.entity.*;
import org.jeecg.modules.yx.service.*;
import org.jeecg.modules.yx.util.ScoreUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -32,7 +29,7 @@ import java.util.stream.Collectors;
* @Author ZhouWenTao
* @Date 2023/10/11 13:33
*/
@Api(tags="得分表")
@Api(tags = "得分表")
@RestController
@RequestMapping("/yx/yxScore")
@Slf4j
@ -43,84 +40,156 @@ public class YxScoreController {
private IYxVolunteerService yxVolunteerService;
@Autowired
private IYxHistoryScoreBatchService yxHistoryScoreBatchService;
@Autowired
private IYxHistoryScoreControlLineService yxHistoryScoreControlLineService;
@Autowired
private IYxScoreSegmentService yxScoreSegmentService;
@PostMapping(value = "/save")
public Result<?> save(@RequestBody JSONObject requestBody){
public Result<?> save(@RequestBody YxUserScore yxUserScore) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
AssertUtils.notNull(sysUser,"请先登录!");
AssertUtils.notNull(sysUser, "请先登录!");
String userId = sysUser.getId();
// 入参
String professionalCategory = requestBody.getString("professionalCategory");
//String educationalLevel = requestBody.getString("educationalLevel");
//AssertUtils.notNull(educationalLevel,"请选择[成绩类型]");
String province = requestBody.getString("province");
String cognitioPolyclinic=requestBody.getString("cognitioPolyclinic");//文科/理科
AssertUtils.notNull(cognitioPolyclinic,"请选择[文科/理科]");
String professionalCategory = yxUserScore.getProfessionalCategory();
String cognitioPolyclinic = yxUserScore.getCognitioPolyclinic();//文科/理科
AssertUtils.notNull(cognitioPolyclinic, "请选择[文科/理科]");
//先判断当前用户是否直接提交过得分
List<YxUserScore> oldScoreList = yxUserScoreService.list(new LambdaQueryWrapper<YxUserScore>().eq(YxUserScore::getState,"1").eq(YxUserScore::getCreateBy, sysUser.getId()));
List<YxUserScore> oldScoreList = yxUserScoreService.list(new LambdaQueryWrapper<YxUserScore>().eq(YxUserScore::getState, "1").eq(YxUserScore::getCreateBy, sysUser.getId()));
if (CollectionUtils.isNotEmpty(oldScoreList)) {
// 将之前的分数信息改为未使用状态
LambdaUpdateWrapper<YxUserScore> updateWrapper=new LambdaUpdateWrapper<>();
updateWrapper.eq(YxUserScore::getState,"1");
updateWrapper.eq(YxUserScore::getCreateBy,userId);
updateWrapper.set(YxUserScore::getState,"0");
LambdaUpdateWrapper<YxUserScore> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(YxUserScore::getState, "1");
updateWrapper.eq(YxUserScore::getCreateBy, userId);
updateWrapper.set(YxUserScore::getState, "0");
yxUserScoreService.update(updateWrapper);
}
//判断之前的填报单
List<YxVolunteer> oldVolunteerList = yxVolunteerService.list(new LambdaQueryWrapper<YxVolunteer>().eq(YxVolunteer::getCreateBy, userId).eq(YxVolunteer::getState, "1"));
if (CollectionUtils.isNotEmpty(oldVolunteerList)) {
// 将之前的志愿单 改为未使用
LambdaUpdateWrapper<YxVolunteer> volunteerUpdateWrapper=new LambdaUpdateWrapper<>();
volunteerUpdateWrapper.eq(YxVolunteer::getState,"1");
volunteerUpdateWrapper.eq(YxVolunteer::getCreateBy,userId);
volunteerUpdateWrapper.set(YxVolunteer::getState,"0");
LambdaUpdateWrapper<YxVolunteer> volunteerUpdateWrapper = new LambdaUpdateWrapper<>();
volunteerUpdateWrapper.eq(YxVolunteer::getState, "1");
volunteerUpdateWrapper.eq(YxVolunteer::getCreateBy, userId);
volunteerUpdateWrapper.set(YxVolunteer::getState, "0");
yxVolunteerService.update(volunteerUpdateWrapper);
}
//保存新的分数信息
YxUserScore yxUserScore=new YxUserScore();
yxUserScore.setProvince(province);//高考省份
yxUserScore.setType("2");//报考类型 1.普通类 2.艺术类
yxUserScore.setCognitioPolyclinic(cognitioPolyclinic);//文科/理科
yxUserScore.setProfessionalCategory(professionalCategory);//专业类别
/*//选课
yxUserScore.setSubjects(String.join(",", requestBody.getJSONArray("subjectsList").toJavaList(String.class)));*/
String professionalScore = requestBody.getString("professionalScore");
String culturalScore = requestBody.getString("culturalScore");
String chineseScore = requestBody.getString("chineseScore");
String englishScore = requestBody.getString("englishScore");
if (!StringUtils.isNumeric(professionalScore)) {
return Result.error("统考成绩仅可输入数字");
}
if (!StringUtils.isNumeric(culturalScore)) {
return Result.error("文化成绩仅可输入数字");
}
if (!StringUtils.isNumeric(chineseScore)) {
return Result.error("语文成绩仅可输入数字");
}
if (!StringUtils.isNumeric(englishScore)) {
return Result.error("英语成绩仅可输入数字");
}
/*String professionalScore = requestBody.getString("professionalScore");String culturalScore = requestBody.getString("culturalScore");String chineseScore = requestBody.getString("chineseScore");String englishScore = requestBody.getString("englishScore");
if (!StringUtils.isNumeric(professionalScore)) {return Result.error("统考成绩仅可输入数字");}if (!StringUtils.isNumeric(culturalScore)) {return Result.error("文化成绩仅可输入数字");}
if (!StringUtils.isNumeric(chineseScore)) {return Result.error("语文成绩仅可输入数字");}if (!StringUtils.isNumeric(englishScore)) {return Result.error("英语成绩仅可输入数字");}
yxUserScore.setProfessionalScore(new BigDecimal(professionalScore));//专业成绩,统考分
yxUserScore.setCulturalScore(new BigDecimal(culturalScore));//文化成绩分
yxUserScore.setChineseScore(new BigDecimal(chineseScore));//语文成绩
yxUserScore.setEnglishScore(new BigDecimal(englishScore));//英语成绩
yxUserScore.setEnglishScore(new BigDecimal(englishScore));//英语成绩*/
yxUserScore.setRanking(0);//位次
yxUserScore.setCreateBy(userId);
BigDecimal culturalScore = yxUserScore.getCulturalScore();
BigDecimal professionalScore = yxUserScore.getProfessionalScore();
//判断 批次 TODO 这里将来改成获取当前年份
List<YxHistoryScoreBatch> historyScoreBatchList = yxHistoryScoreBatchService.listOrderByFieldBatch(new YxHistoryScoreBatch("2023", professionalCategory));
String batch = ScoreUtil.conversionScoreBatch(cognitioPolyclinic.equals("文科"), professionalCategory, new BigDecimal(culturalScore), new BigDecimal(professionalScore), historyScoreBatchList);
//根据批次判断 本科/专科
yxUserScore.setEducationalLevel(batch.contains("")?"1":"2");
yxUserScore.setBatch(batch);
String professionalCategoryChildren = yxUserScore.getProfessionalCategoryChildren();
if (StringUtils.isBlank(professionalCategoryChildren)) {
if (!professionalCategoryChildren.contains("音乐表演声乐")) {
yxUserScore.setYybysy(YxConstant.bigDecimal0);
}else if(!professionalCategoryChildren.contains("音乐表演器乐")){
yxUserScore.setXjysby(YxConstant.bigDecimal0);
}else if(!professionalCategoryChildren.contains("音乐教育")){
yxUserScore.setYyjy(YxConstant.bigDecimal0);
}else if(!professionalCategoryChildren.contains("服装表演")){
yxUserScore.setXjysby(YxConstant.bigDecimal0);
}else if(!professionalCategoryChildren.contains("戏剧影视导演")){
yxUserScore.setXjysby(YxConstant.bigDecimal0);
}else if(!professionalCategoryChildren.contains("戏剧影视表演")){
yxUserScore.setXjysby(YxConstant.bigDecimal0);
}
}
//==============判断 批次 start
LambdaQueryWrapper<YxHistoryScoreControlLine> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(YxHistoryScoreControlLine::getYear,YxConstant.nowYear);//用23年省控线
lambdaQueryWrapper.eq(YxHistoryScoreControlLine::getCategory,yxUserScore.getCognitioPolyclinic());
//TODO 目前没有24年省控线用的是23年省控线
//表演类型的方向
if ("舞蹈类".equals(professionalCategory)) {
//舞蹈类使用艺术舞蹈的省控线判定批次
lambdaQueryWrapper.eq(YxHistoryScoreControlLine::getProfessionalCategory,"艺术舞蹈类");
}else{
lambdaQueryWrapper.eq(YxHistoryScoreControlLine::getProfessionalCategory,professionalCategory);
}
lambdaQueryWrapper.last("ORDER BY year DESC,field(batch,'提前批','本科A段','本科B段','本科','高职高专')");
// List<YxHistoryScoreControlLine> historyScoreControlLineList = yxHistoryScoreControlLineService.list(lambdaQueryWrapper);
// if (!YxConstant.cankaoMajorTypeList.contains(professionalCategory)) {
// //24年分数转换折合23年分数
// YxScoreSegment scoreSegment = null;
// if ("舞蹈类".equals(professionalCategory)) {
// scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, professionalScore, professionalCategory,"艺术舞蹈", yxUserScore.getProvince());
// professionalScore = scoreSegment.getScore();
// }else if("音乐类".equals(professionalCategory)){
// BigDecimal yybysy = yxUserScore.getYybysy();//音乐表演声乐成绩
// BigDecimal yybyqy = yxUserScore.getYybyqy();//音乐表演器乐成绩
// BigDecimal yyjy = yxUserScore.getYyjy();//音乐教育成绩
//
// if (yybysy.compareTo(YxConstant.bigDecimal0) > 0) {
// //音乐表演声乐
// scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, yybysy, professionalCategory,"音乐表演声乐", yxUserScore.getProvince());
// yybysy = scoreSegment.getScore();
// }else if(yybysy.compareTo(YxConstant.bigDecimal0) > 0){
// //音乐表演器乐成绩
// scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, yybyqy, professionalCategory,"音乐表演器乐", yxUserScore.getProvince());
// yybysy = scoreSegment.getScore();
// }else if(yyjy.compareTo(YxConstant.bigDecimal0) > 0){
// //音乐教育成绩
// scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, yyjy, professionalCategory,"音乐教育", yxUserScore.getProvince());
// yyjy = scoreSegment.getScore();
// }
// professionalScore = yybysy.max(yybyqy).max(yyjy);
// }else if("播音与主持类".equals(professionalCategory)){
// scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, professionalScore, professionalCategory,null, yxUserScore.getProvince());
// professionalScore = scoreSegment.getScore();
// }else if("表演类".equals(professionalCategory)){
// BigDecimal xjysby = yxUserScore.getXjysby();//影视戏剧表演
// BigDecimal xjysdy = yxUserScore.getXjysdy();//影视戏剧导演
// BigDecimal fzby = yxUserScore.getFzby();//服装表演
// if (xjysby.compareTo(YxConstant.bigDecimal0) > 0) {
// scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, xjysby, professionalCategory,"影视戏剧表演", yxUserScore.getProvince());
// xjysby = scoreSegment.getScore();
// }else if(xjysdy.compareTo(YxConstant.bigDecimal0) > 0){
// //音乐表演器乐成绩
// scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, xjysdy, professionalCategory,"影视戏剧导演", yxUserScore.getProvince());
// xjysdy = scoreSegment.getScore();
// }else if(fzby.compareTo(YxConstant.bigDecimal0) > 0){
// //音乐教育成绩
// scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, fzby, professionalCategory,"服装表演", yxUserScore.getProvince());
// fzby = scoreSegment.getScore();
// }
// professionalScore = xjysby.max(xjysdy).max(fzby);
// }
// }
//
// String batch = "高职高专";
// if (professionalScore!=null && professionalScore.compareTo(YxConstant.bigDecimal0) > 0) {
// batch = ScoreUtil.conversionScoreBatch(culturalScore, professionalScore, historyScoreControlLineList);
// }
//================批次 end
//根据批次判断 本科/高职高专
yxUserScore.setEducationalLevel("1");
//yxUserScore.setEducationalLevel(batch.contains("") ? "1" : "2");
if ("体育类".equals(professionalCategory)) {
yxUserScore.setBatch("本科");
}else{
yxUserScore.setBatch("本科A段");
}
yxUserScore.setId(null);
yxUserScore.setCreateTime(null);
yxUserScore.setUpdateTime(null);
//保存当前用户的得分
yxUserScoreService.saveOrUpdate(yxUserScore);
yxUserScoreService.save(yxUserScore);
return Result.OK();
}
@GetMapping(value = "/getUserScoreInfo")
public Result<?> getUserScoreInfo(){
public Result<?> getUserScoreInfo() {
return Result.OK(yxUserScoreService.getActiveCurrentUserScore());
}
}

View File

@ -2,18 +2,18 @@ package org.jeecg.modules.yx.controller;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.AssertUtils;
import org.jeecg.modules.yx.constant.YxConstant;
import org.jeecg.modules.yx.dto.HistoryScoreSegmentDTO;
import org.jeecg.modules.yx.entity.YxScoreSegment;
import org.jeecg.modules.yx.service.IYxScoreSegmentService;
@ -64,14 +64,22 @@ public class YxScoreSegmentController extends JeecgController<YxScoreSegment, IY
BigDecimal bigDecimal1 = new BigDecimal("1");
BigDecimal bigDecimal100 = new BigDecimal("100");
BigDecimal bigDecimal5 = new BigDecimal("5");
String province = yxScoreSegment.getProvince();
String professionalCategory = yxScoreSegment.getProfessionalCategory();
if (YxConstant.cankaoMajorTypeList.contains(professionalCategory)) {
yearList = Arrays.asList("2024");
}
List<HistoryScoreSegmentDTO> historyScoreSegmentDTOList = new ArrayList<>();
HistoryScoreSegmentDTO historyScoreSegmentDto = null;
for (String year : yearList) {
//当前年所有分数
LambdaQueryWrapper<YxScoreSegment> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(YxScoreSegment::getYear, year);
lambdaQueryWrapper.eq(YxScoreSegment::getProvince, yxScoreSegment.getProvince());
lambdaQueryWrapper.eq(YxScoreSegment::getProfessionalCategory, yxScoreSegment.getProfessionalCategory());
lambdaQueryWrapper.eq(YxScoreSegment::getProvince,province );
lambdaQueryWrapper.eq(YxScoreSegment::getProfessionalCategory, professionalCategory);
lambdaQueryWrapper.eq(YxScoreSegment::getFixedRank,1);
lambdaQueryWrapper.orderByDesc(YxScoreSegment::getScore);
List<YxScoreSegment> list = yxScoreSegmentService.list(lambdaQueryWrapper);
if (CollectionUtils.isEmpty(list)) {
@ -80,8 +88,8 @@ public class YxScoreSegmentController extends JeecgController<YxScoreSegment, IY
//获取最低分
lambdaQueryWrapper.clear();
lambdaQueryWrapper.eq(YxScoreSegment::getYear, year);
lambdaQueryWrapper.eq(YxScoreSegment::getProvince, yxScoreSegment.getProvince());
lambdaQueryWrapper.eq(YxScoreSegment::getProfessionalCategory, yxScoreSegment.getProfessionalCategory());
lambdaQueryWrapper.eq(YxScoreSegment::getProvince, province);
lambdaQueryWrapper.eq(YxScoreSegment::getProfessionalCategory, professionalCategory);
lambdaQueryWrapper.orderByAsc(YxScoreSegment::getScore);
lambdaQueryWrapper.last("limit 0,1");
YxScoreSegment lowScoreSegment = yxScoreSegmentService.getOne(lambdaQueryWrapper);
@ -94,11 +102,19 @@ public class YxScoreSegmentController extends JeecgController<YxScoreSegment, IY
//当前分数~当前分数+5 是否包含 输入的分数
one = scoreSegment.getScore();
two = scoreSegment.getScore().add(bigDecimal5);
//获取下一个分段的排名
lambdaQueryWrapper.clear();
lambdaQueryWrapper.eq(YxScoreSegment::getYear, year);
lambdaQueryWrapper.eq(YxScoreSegment::getProvince, province);
lambdaQueryWrapper.eq(YxScoreSegment::getProfessionalCategory, professionalCategory);
lambdaQueryWrapper.eq(YxScoreSegment::getScore,two);
lambdaQueryWrapper.last("limit 0,1");
YxScoreSegment endScoreSegment = yxScoreSegmentService.getOne(lambdaQueryWrapper);
// 如果分数
// one:285,two:290, userScore:286
if (one.compareTo(userScore)<=0 && i==0) {
historyScoreSegmentDto.setBeginScore(one);//开始分数
historyScoreSegmentDto.setRank(scoreSegment.getPersonNum());//排名
historyScoreSegmentDto.setStartRank(scoreSegment.getPersonNum());//排名
// 算占比
BigDecimal divide = new BigDecimal(scoreSegment.getPersonNum()).divide(new BigDecimal(lowScoreSegment.getPersonNum()), 4, RoundingMode.HALF_UP);
historyScoreSegmentDto.setRate(bigDecimal1.subtract(divide).multiply(bigDecimal100));
@ -106,7 +122,10 @@ public class YxScoreSegmentController extends JeecgController<YxScoreSegment, IY
}else if (one.compareTo(userScore)<=0 || (one.compareTo(userScore)<=0 && two.compareTo(userScore)>=0)) {
historyScoreSegmentDto.setBeginScore(one);//开始分数
historyScoreSegmentDto.setEndScore(two);//结束分数
historyScoreSegmentDto.setRank(scoreSegment.getPersonNum());//排名
historyScoreSegmentDto.setStartRank(scoreSegment.getPersonNum());//排名
if (endScoreSegment!=null) {
historyScoreSegmentDto.setEndRank(endScoreSegment.getPersonNum());
}
// 算占比
BigDecimal divide = new BigDecimal(scoreSegment.getPersonNum()).divide(new BigDecimal(lowScoreSegment.getPersonNum()), 4, RoundingMode.HALF_UP);
historyScoreSegmentDto.setRate(bigDecimal1.subtract(divide).multiply(bigDecimal100));
@ -114,11 +133,11 @@ public class YxScoreSegmentController extends JeecgController<YxScoreSegment, IY
}
i++;
}
if (historyScoreSegmentDto.getRank()==null) {
if (historyScoreSegmentDto.getStartRank()==null) {
//低于历年分
historyScoreSegmentDto.setType(2);
historyScoreSegmentDto.setBeginScore(lowScoreSegment.getScore());
historyScoreSegmentDto.setRank(lowScoreSegment.getPersonNum());
historyScoreSegmentDto.setStartRank(lowScoreSegment.getPersonNum());
}
historyScoreSegmentDTOList.add(historyScoreSegmentDto);
}
@ -253,4 +272,81 @@ public class YxScoreSegmentController extends JeecgController<YxScoreSegment, IY
return super.importExcel(request, response, YxScoreSegment.class);
}
/**
* 通过excel导入数据
*
* @return
*/
@RequestMapping(value = "/test", method = RequestMethod.POST)
public Result<?> test() {
String year = "2023";
String professionalCategory = "表演类";
String professionalCategoryChild=null;
//professionalCategoryChild = "影视戏剧导演";
String province = "河南";
LambdaQueryWrapper<YxScoreSegment> yxScoreSegmentLambdaQueryWrapper = new LambdaQueryWrapper<>();
yxScoreSegmentLambdaQueryWrapper.eq(YxScoreSegment::getYear,year);
yxScoreSegmentLambdaQueryWrapper.orderByDesc(YxScoreSegment::getScore);
yxScoreSegmentLambdaQueryWrapper.eq(YxScoreSegment::getProfessionalCategory,professionalCategory);
if (StringUtils.isNotBlank(professionalCategoryChild)) {
yxScoreSegmentLambdaQueryWrapper.eq(YxScoreSegment::getProfessionalCategoryChild,professionalCategoryChild);
}
List<YxScoreSegment> list = yxScoreSegmentService.list(yxScoreSegmentLambdaQueryWrapper);
List<YxScoreSegment> scoreSegmentNextAddList=new ArrayList<>();
//根据5分一段表遍历折算出每个段位内4分的占比
for (int i = 0; i < list.size(); i++) {
int nextI=(i+1);
if (nextI==list.size()) {
//最后一名了不算
break;
}
//当前排名
YxScoreSegment scoreSegment = list.get(i);
//下个5段
YxScoreSegment nextScoreSegment = list.get(nextI);
//比方说当前是275分
int score = scoreSegment.getScore().intValue();
//下个阶段是270分
int nextScore = nextScoreSegment.getScore().intValue();
//计算这个五分内1分占多数
BigDecimal rate = scoreSegment.getRate();
BigDecimal nextRate = nextScoreSegment.getRate();
BigDecimal oneScoreRate = rate.subtract(nextRate).divide(new BigDecimal(5),10, RoundingMode.HALF_UP);
//循环 创建5次分数每次-1分
for (int j = 1; j < score - nextScore; j++) {
YxScoreSegment scoreSegmentNextAdd = new YxScoreSegment();
int nowScore = score-j;
//创建为 指定分数对象
scoreSegmentNextAdd.setScore(new BigDecimal(nowScore));
scoreSegmentNextAdd.setRate(nextRate.add(oneScoreRate.multiply(new BigDecimal(5-j))));
scoreSegmentNextAdd.setYear(year);
scoreSegmentNextAdd.setProvince(province);
scoreSegmentNextAdd.setProfessionalCategory(professionalCategory);
scoreSegmentNextAdd.setFixedRank(0);
scoreSegmentNextAdd.setProfessionalCategoryChild(professionalCategoryChild);
scoreSegmentNextAddList.add(scoreSegmentNextAdd);
}
}
//System.out.println(scoreSegmentNextAddList.size());
yxScoreSegmentService.saveBatch(scoreSegmentNextAddList);
//return super.importExcel(request, response, YxScoreSegment.class);
return Result.OK();
}
@RequestMapping(value = "/test2", method = RequestMethod.POST)
public Result<?> test2() {
BigDecimal score = new BigDecimal(273);
String professionalCategory = "音乐类";
String professionalCategoryChild = "音乐表演声乐";
String province = "河南";
YxScoreSegment scoreSegment = yxScoreSegmentService.checkOldYearScore("2024", score, professionalCategory, professionalCategoryChild, province);
System.out.println("约等于上一年的分数:");
System.out.println("分数:"+scoreSegment.getScore());
System.out.println("年份:"+scoreSegment.getYear());
System.out.println("占比:"+scoreSegment.getRate());
return Result.OK(scoreSegment);
}
}

View File

@ -12,6 +12,7 @@ import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import org.apache.commons.collections.CollectionUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
@ -91,6 +92,8 @@ public class YxVipCardController extends JeecgController<YxVipCard, IYxVipCardSe
// @RequiresPermissions("yx:yx_vip_card:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody YxVipCard yxVipCard) {
boolean exsist = yxVipCardService.isExsist(yxVipCard.getCardNum());
AssertUtils.notTrue(exsist,"卡密已存在");
yxVipCardService.save(yxVipCard);
return Result.OK("添加成功!");
}
@ -106,13 +109,16 @@ public class YxVipCardController extends JeecgController<YxVipCard, IYxVipCardSe
// @RequiresPermissions("yx:yx_vip_card:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody YxVipCard yxVipCard) {
yxVipCardService.updateById(yxVipCard);
LambdaUpdateWrapper<YxVipCard> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.eq(YxVipCard::getId,yxVipCard.getId());
lambdaUpdateWrapper.set(YxVipCard::getCardNum,yxVipCard.getCardNum());
yxVipCardService.update(lambdaUpdateWrapper);
//yxVipCardService.updateById(yxVipCard);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@ -148,7 +154,7 @@ public class YxVipCardController extends JeecgController<YxVipCard, IYxVipCardSe
AssertUtils.notNull(cardNum,"请输入卡号");
String cardPassword = requestBody.getString("cardPassword");
AssertUtils.notNull(cardPassword,"请输入卡密");
yxVipCardService.exchange(cardNum,cardPassword,sysUser.getId());
yxVipCardService.exchange(cardNum,sysUser.getId());
return Result.OK("兑换成功");
}

View File

@ -0,0 +1,178 @@
package org.jeecg.modules.yx.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.yx.entity.YxVipSku;
import org.jeecg.modules.yx.service.IYxVipSkuService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.authz.annotation.RequiresPermissions;
/**
* @Description: VIP库存表
* @Author: jeecg-boot
* @Date: 2024-02-23
* @Version: V1.0
*/
@Api(tags="VIP库存表")
@RestController
@RequestMapping("/yx/yxVipSku")
@Slf4j
public class YxVipSkuController extends JeecgController<YxVipSku, IYxVipSkuService> {
@Autowired
private IYxVipSkuService yxVipSkuService;
/**
* 分页列表查询
*
* @param yxVipSku
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "VIP库存表-分页列表查询")
@ApiOperation(value="VIP库存表-分页列表查询", notes="VIP库存表-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<YxVipSku>> queryPageList(YxVipSku yxVipSku,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<YxVipSku> queryWrapper = QueryGenerator.initQueryWrapper(yxVipSku, req.getParameterMap());
Page<YxVipSku> page = new Page<YxVipSku>(pageNo, pageSize);
IPage<YxVipSku> pageList = yxVipSkuService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 添加
*
* @param yxVipSku
* @return
*/
@AutoLog(value = "VIP库存表-添加")
@ApiOperation(value="VIP库存表-添加", notes="VIP库存表-添加")
@RequiresPermissions("yx:yx_vip_sku:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody YxVipSku yxVipSku) {
yxVipSkuService.save(yxVipSku);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param yxVipSku
* @return
*/
@AutoLog(value = "VIP库存表-编辑")
@ApiOperation(value="VIP库存表-编辑", notes="VIP库存表-编辑")
@RequiresPermissions("yx:yx_vip_sku:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody YxVipSku yxVipSku) {
yxVipSkuService.updateById(yxVipSku);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "VIP库存表-通过id删除")
@ApiOperation(value="VIP库存表-通过id删除", notes="VIP库存表-通过id删除")
@RequiresPermissions("yx:yx_vip_sku:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
yxVipSkuService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "VIP库存表-批量删除")
@ApiOperation(value="VIP库存表-批量删除", notes="VIP库存表-批量删除")
@RequiresPermissions("yx:yx_vip_sku:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.yxVipSkuService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
//@AutoLog(value = "VIP库存表-通过id查询")
@ApiOperation(value="VIP库存表-通过id查询", notes="VIP库存表-通过id查询")
@GetMapping(value = "/queryById")
public Result<YxVipSku> queryById(@RequestParam(name="id",required=true) String id) {
YxVipSku yxVipSku = yxVipSkuService.getById(id);
if(yxVipSku==null) {
return Result.error("未找到对应数据");
}
return Result.OK(yxVipSku);
}
/**
* 导出excel
*
* @param request
* @param yxVipSku
*/
@RequiresPermissions("yx:yx_vip_sku:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, YxVipSku yxVipSku) {
return super.exportXls(request, yxVipSku, YxVipSku.class, "VIP库存表");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequiresPermissions("yx:yx_vip_sku:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, YxVipSku.class);
}
}

View File

@ -0,0 +1,30 @@
package org.jeecg.modules.yx.dto;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
/**
* @Description
* @Author ZhouWenTao
* @Date 2024/3/3 7:45
*/
@Data
public class ArwuImportTestDTO implements Serializable {
@Excel(name = "序号", width = 15)
private String xh;
@Excel(name = "学校名称", width = 15)
private String xxmc;
@Excel(name = "排名", width = 15)
private String pm;
@Excel(name = "院校标签", width = 15)
private String yxbq;
@Excel(name = "类型", width = 15)
private String lx;
@Excel(name = "地区", width = 15)
private String dq;
@Excel(name = "分数", width = 15)
private String fs;
}

View File

@ -23,9 +23,10 @@ public class HistoryScoreSegmentDTO implements Serializable {
private BigDecimal endScore;
@ApiModelProperty(value = "超越占比")
private BigDecimal rate;
@ApiModelProperty(value = "排名")
private Integer rank;
@ApiModelProperty(value = "开始排名")
private Integer startRank;
@ApiModelProperty(value = "结束排名")
private Integer endRank;
private Integer type;
}

View File

@ -0,0 +1,72 @@
package org.jeecg.modules.yx.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
/**
* @Description
* @Author ZhouWenTao
* @Date 2023/11/28 15:15
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class LiNianShuJuBenDTO implements Serializable {
private static final long serialVersionUID = 1L;
@Excel(name = "院校代码", width = 15)
@ApiModelProperty(value = "院校代码")
private String yuanxiaoCode;
@Excel(name = "院校名称", width = 15)
@ApiModelProperty(value = "院校名称")
private String yuanxiao;
@Excel(name = "科类", width = 15)
@ApiModelProperty(value = "科类")
private String kelei;
@Excel(name = "年份", width = 15)
@ApiModelProperty(value = "年份")
private String nianfen;
@Excel(name = "专业名称", width = 15)
@ApiModelProperty(value = "专业名称")
private String zhuanye;
@Excel(name = "专业代码", width = 15)
@ApiModelProperty(value = "专业代码")
private String zhuanyeCode;
@Excel(name = "排序方法", width = 15)
@ApiModelProperty(value = "排序方法")
private String sortType;
@Excel(name = "文化\n" +
"成绩\n" +
"比例/%", width = 15)
@ApiModelProperty(value = "文化成绩比例/%")
private String wenhuaBili;
@Excel(name = "专业\n" +
"成绩\n" +
"比例/%", width = 15)
@ApiModelProperty(value = "专业成绩比例/%")
private String zhuanyeBili;
@Excel(name = "计划数", width = 15)
@ApiModelProperty(value = "计划数")
private String jihuashu;
@Excel(name = "实际\n" +
"投档\n" +
"人数",width = 15)
@ApiModelProperty(value = "实际投档人数")
private String shijitoudangrenshu;
@Excel(name = "投档\n" +
"最低分", width = 15)
@ApiModelProperty(value = "投档最低分")
private String yizhiyuanzuidipaixuchengji;
@Excel(name = "专业备注", width = 15)
@ApiModelProperty(value = "专业备注")
private String detail;
}

View File

@ -21,20 +21,20 @@ import java.io.Serializable;
public class LiNianShuJuDTO implements Serializable {
private static final long serialVersionUID = 1L;
@Excel(name = "院校", width = 15)
@ApiModelProperty(value = "院校")
private java.lang.String yuanxiao;
@Excel(name = "院校代码", width = 15)
@ApiModelProperty(value = "院校代码")
private java.lang.String yuanxiaoCode;
@Excel(name = "院校名称", width = 15)
@ApiModelProperty(value = "院校名称")
private java.lang.String yuanxiao;
@Excel(name = "科类", width = 15)
@ApiModelProperty(value = "科类")
private java.lang.String kelei;
@Excel(name = "年份", width = 15)
@ApiModelProperty(value = "年份")
private java.lang.String nianfen;
@Excel(name = "专业", width = 15)
@ApiModelProperty(value = "专业")
@Excel(name = "专业名称", width = 15)
@ApiModelProperty(value = "专业名称")
private java.lang.String zhuanye;
@Excel(name = "专业代码", width = 15)
@ApiModelProperty(value = "专业代码")
@ -62,17 +62,18 @@ public class LiNianShuJuDTO implements Serializable {
@ApiModelProperty(value = "录取数")
private java.lang.String luqushu;
@Excel(name = "一志\n" +
"愿录\n" +
"取数", width = 15)
@ApiModelProperty(value = "一志愿录取数")
private java.lang.String yizhiyuanluqushu;
@Excel(name = "实际\n" +
"投档\n" +
"人数",width = 15)
@ApiModelProperty(value = "实际投档人数")
private String shijitoudangrenshu;
@Excel(name = "一志\n" +
"愿录\n" +
"取数", width = 15)
@ApiModelProperty(value = "一志愿录取数")
private java.lang.String yizhiyuanluqushu;
@Excel(name = "一志愿\n" +
"最低排\n" +
"序成绩", width = 15)

View File

@ -0,0 +1,74 @@
package org.jeecg.modules.yx.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
/**
* @Description
* @Author ZhouWenTao
* @Date 2023/11/28 15:15
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class LiNianShuJuZhuanDTO implements Serializable {
private static final long serialVersionUID = 1L;
@Excel(name = "院校代码", width = 15)
@ApiModelProperty(value = "院校代码")
private String yuanxiaoCode;
@Excel(name = "院校", width = 15)
@ApiModelProperty(value = "院校")
private String yuanxiao;
@Excel(name = "科类", width = 15)
@ApiModelProperty(value = "科类")
private String kelei;
@Excel(name = "年份", width = 15)
@ApiModelProperty(value = "年份")
private String nianfen;
@Excel(name = "专业", width = 15)
@ApiModelProperty(value = "专业")
private String zhuanye;
@Excel(name = "专业代码", width = 15)
@ApiModelProperty(value = "专业代码")
private String zhuanyeCode;
@Excel(name = "排序方法", width = 15)
@ApiModelProperty(value = "排序方法")
private String sortType;
@Excel(name = "文化\n" +
"成绩\n" +
"比例/%", width = 15)
@ApiModelProperty(value = "文化成绩比例/%")
private String wenhuaBili;
@Excel(name = "专业\n" +
"成绩\n" +
"比例/%", width = 15)
@ApiModelProperty(value = "专业成绩比例/%")
private String zhuanyeBili;
@Excel(name = "计划\n" +
"", width = 15)
@ApiModelProperty(value = "计划数")
private String jihuashu;
@Excel(name = "实际\n" +
"投档\n" +
"人数",width = 15)
@ApiModelProperty(value = "实际投档人数")
private String shijitoudangrenshu;
@Excel(name = "一志愿\n" +
"最低排\n" +
"序成绩", width = 15)
@ApiModelProperty(value = "投档最低分")
private String yizhiyuanzuidipaixuchengji;
@Excel(name = "专业备注", width = 15)
@ApiModelProperty(value = "专业备注")
private String detail;
}

View File

@ -0,0 +1,35 @@
package org.jeecg.modules.yx.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @Description
* @Author ZhouWenTao
* @Date 2024/3/3 13:33
*/
@Data
@ApiModel(value = "子级专业类别")
public class ProfessionalCategoryChildrenDTO implements Serializable {
@ApiModelProperty(value = "子级专业类别名称")
private String categoryChildName;
@ApiModelProperty(value = "子级专业类别分数")
private BigDecimal categoryChildScore;
public ProfessionalCategoryChildrenDTO() {
}
public ProfessionalCategoryChildrenDTO(String categoryChildName) {
this.categoryChildName = categoryChildName;
}
public ProfessionalCategoryChildrenDTO(String categoryChildName, BigDecimal categoryChildScore) {
this.categoryChildName = categoryChildName;
this.categoryChildScore = categoryChildScore;
}
}

View File

@ -1,8 +1,5 @@
package org.jeecg.modules.yx.dto;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
@ -17,98 +14,109 @@ import java.io.Serializable;
@Data
public class SchoolImport2 implements Serializable {
private static final long serialVersionUID = 1L;
/**省*/
@Excel(name = "省份", width = 15)
@ApiModelProperty(value = "省份")
private java.lang.String province;
/**市*/
@Excel(name = "城市", width = 15)
@ApiModelProperty(value = "城市")
private java.lang.String city;
/**区*/
@Excel(name = "区域", width = 15)
@ApiModelProperty(value = "区域")
private java.lang.String area;
/**学校名称*/
@Excel(name = "学校名称", width = 15)
@ApiModelProperty(value = "学校名称")
private java.lang.String schoolName;
@Excel(name = "建校时间")
private String time;
/**隶属于*/
@Excel(name = "隶属于", width = 15)
@ApiModelProperty(value = "隶属于")
private java.lang.String affiliation;
/**985工程*/
@Excel(name = "985工程", width = 15)
@ApiModelProperty(value = "985工程")
private java.lang.String xxmc;
@Excel(name = "新院校名称", width = 15)
@ApiModelProperty(value = "新院校名称")
private java.lang.String xyxmc;
@Excel(name = "所在省", width = 15)
@ApiModelProperty(value = "所在省")
private java.lang.String szs;
@Excel(name = "城市", width = 15)
@ApiModelProperty(value = "城市")
private java.lang.String cs;
@Excel(name = "类型", width = 15)
@ApiModelProperty(value = "类型")
private java.lang.String lx;
@Excel(name = "隶属单位", width = 15)
@ApiModelProperty(value = "隶属单位")
private java.lang.String lsdw;
@Excel(name = "是否985", width = 15)
@ApiModelProperty(value = "是否985")
private java.lang.String is985;
/**211工程*/
@Excel(name = "211工程", width = 15)
@ApiModelProperty(value = "211工程")
@Excel(name = "是否211", width = 15)
@ApiModelProperty(value = "是否211")
private java.lang.String is211;
/**强基计划*/
@Excel(name = "强基", width = 15)
@ApiModelProperty(value = "强基")
private java.lang.String isStrengthen;
/**重点学科*/
@Excel(name = "国家重点学科", width = 15)
@ApiModelProperty(value = "国家重点学科")
private java.lang.Integer keyDisciplines;
/**硕士点*/
@Excel(name = "硕士点", width = 15)
@ApiModelProperty(value = "硕士点")
private java.lang.Integer masterPoint;
/**博士点*/
@Excel(name = "博士点", width = 15)
@ApiModelProperty(value = "博士点")
private java.lang.Integer doctoralPoint;
/**重点实验室*/
@Excel(name = "重点实验室", width = 15)
@ApiModelProperty(value = "重点实验室")
private java.lang.Integer keyLaboratory;
/**占地面积(亩)*/
@Excel(name = "占地面积(亩)", width = 15)
@ApiModelProperty(value = "占地面积(亩)")
private java.lang.Double are;
/**院校类型*/
@Excel(name = "院校类型", width = 15)
@ApiModelProperty(value = "院校类型")
private java.lang.String institutionType;
@Excel(name = "一流大学", width = 15)
@ApiModelProperty(value = "一流大学")
private java.lang.String yldx;
@Excel(name = "国重/省重", width = 15)
@ApiModelProperty(value = "国重/省重")
private java.lang.String gzsz;
@Excel(name = "公私性质", width = 15)
@ApiModelProperty(value = "公私性质")
private java.lang.String gsxz;
/**办学类型*/
@Excel(name = "办学类型", width = 15)
@ApiModelProperty(value = "办学类型")
private java.lang.String schoolType;
@Excel(name = "本科/专科", width = 15)
@ApiModelProperty(value = "本科/专科")
private java.lang.String bkzk;
/**办学性质*/
@Excel(name = "办学性质", width = 15)
@ApiModelProperty(value = "办学性质")
private java.lang.String schoolNature;
@Excel(name = "保研率", width = 15)
@ApiModelProperty(value = "保研率")
private java.lang.String byl;
@Excel(name = "国家特色专业", width = 15)
@ApiModelProperty(value = "国家特色专业")
private java.lang.String gjtszy;
@Excel(name = "省特色专业", width = 15)
@ApiModelProperty(value = "省特色专业")
private java.lang.String stszy;
@Excel(name = "是否国重点", width = 15)
@ApiModelProperty(value = "是否国重点")
private java.lang.String sfgzd;
@Excel(name = "世界一流", width = 15)
@ApiModelProperty(value = "世界一流")
private java.lang.String sjyl;
@Excel(name = "是否双一流", width = 15)
@ApiModelProperty(value = "是否双一流")
private java.lang.String sfsyl;
@Excel(name = "硕士点(个)", width = 15)
@ApiModelProperty(value = "硕士点(个)")
private java.lang.String ssd;
@Excel(name = "博士点(个)", width = 15)
@ApiModelProperty(value = "博士点(个)")
private java.lang.String bsd;
@Excel(name = "成立时间", width = 15)
@ApiModelProperty(value = "成立时间")
private java.lang.String clsj;
@Excel(name = "女生比例", width = 15)
@ApiModelProperty(value = "女生比例")
private java.lang.String nvsbl;
@Excel(name = "男生比例", width = 15)
@ApiModelProperty(value = "男生比例")
private java.lang.String nsbl;
@Excel(name = "招办电话", width = 15)
@ApiModelProperty(value = "招办电话")
private java.lang.String zbdh;
@Excel(name = "电子邮箱", width = 15)
@ApiModelProperty(value = "电子邮箱")
private java.lang.String schoolEmail;
private java.lang.String dzyx;
/**详细地址*/
@Excel(name = "详细地址", width = 15)
@ApiModelProperty(value = "详细地址")
private java.lang.String street;
@Excel(name = "通讯地址", width = 15)
@ApiModelProperty(value = "通讯地址")
private java.lang.String txdz;
/**官方网址*/
@Excel(name = "官方网址", width = 15)
@ApiModelProperty(value = "官方网址")
private java.lang.String schoolWebsiteAddress;
/**官方电话*/
@Excel(name = "官方电话", width = 15)
@ApiModelProperty(value = "官方电话")
private java.lang.String schoolPhone;
@Excel(name = "官网", width = 15)
@ApiModelProperty(value = "官网")
private java.lang.String gw;
/**简介*/
@Excel(name = "简介", width = 15)
@ApiModelProperty(value = "简介")
private java.lang.String baseInfo;
@Excel(name = "评估结果", width = 15)
@ApiModelProperty(value = "评估结果")
private java.lang.String pgjg;
@Excel(name = "大学简介", width = 15)
@ApiModelProperty(value = "大学简介")
private java.lang.String dxjj;
}

View File

@ -0,0 +1,78 @@
package org.jeecg.modules.yx.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: 软科排名表
* @Author: jeecg-boot
* @Date: 2024-03-03
* @Version: V1.0
*/
@Data
@TableName("yx_arwu")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="yx_arwu对象", description="软科排名表")
public class YxArwu implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.Integer id;
/**院校编码*/
@Excel(name = "院校编码", width = 15)
@ApiModelProperty(value = "院校编码")
private java.lang.String schoolCode;
/**排名*/
@Excel(name = "排名", width = 15)
@ApiModelProperty(value = "排名")
private java.lang.String ranking;
/**类型*/
@Excel(name = "类型", width = 15)
@ApiModelProperty(value = "类型")
private java.lang.String type;
/**年份*/
@Excel(name = "年份", width = 15)
@ApiModelProperty(value = "年份")
private java.lang.String year;
/**分数*/
@Excel(name = "分数", width = 15)
@ApiModelProperty(value = "分数")
private java.math.BigDecimal score;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private java.lang.String sysOrgCode;
}

View File

@ -137,4 +137,7 @@ public class YxHistoryMajorEnroll implements Serializable {
/**专业类型*/
@ApiModelProperty(value = "专业类型")
private String majorType;
/**专业类型子级*/
@ApiModelProperty(value = "专业类型子级")
private String majorTypeChild;
}

View File

@ -64,4 +64,14 @@ public class YxHistoryScoreControlLine implements Serializable {
@Excel(name = "专业成绩分数", width = 15)
@ApiModelProperty(value = "专业成绩分数")
private java.math.BigDecimal specialScore;
/**文化成绩分数校考*/
@Excel(name = "文化成绩分数校考", width = 15)
@ApiModelProperty(value = "文化成绩分数校考")
private java.math.BigDecimal culturalScoreXk;
/**专业成绩分数校考*/
@Excel(name = "专业成绩分数校考", width = 15)
@ApiModelProperty(value = "专业成绩分数校考")
private java.math.BigDecimal specialScoreXk;
}

View File

@ -44,6 +44,10 @@ public class YxMajor implements Serializable {
@Excel(name = "专业代码", width = 15)
@ApiModelProperty(value = "专业代码")
private java.lang.String majorCode;
/**专业代码字母*/
@Excel(name = "专业代码字母", width = 15)
@ApiModelProperty(value = "专业代码字母")
private java.lang.String majorCodeChar;
/**学历层次*/
@Excel(name = "学历层次", width = 15)
@ApiModelProperty(value = "学历层次")
@ -57,6 +61,14 @@ public class YxMajor implements Serializable {
@Excel(name = "学制", width = 15)
@ApiModelProperty(value = "学制")
private java.lang.String semester;
/**学科分类*/
@Excel(name = "学科分类", width = 15)
@ApiModelProperty(value = "学科分类")
private java.lang.String xkfl;
/**专业类*/
@Excel(name = "专业类", width = 15)
@ApiModelProperty(value = "专业类")
private java.lang.String zyl;
/**所属一级学科*/
@Excel(name = "所属一级学科", width = 15)
@ApiModelProperty(value = "所属一级学科")

View File

@ -0,0 +1,85 @@
package org.jeecg.modules.yx.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: 订单表
* @Author: jeecg-boot
* @Date: 2024-02-23
* @Version: V1.0
*/
@Data
@TableName("yx_order")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="yx_order对象", description="订单表")
public class YxOrder implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**订单编号(流水号)*/
@Excel(name = "订单编号(流水号)", width = 15)
@ApiModelProperty(value = "订单编号(流水号)")
private java.lang.String orderCode;
/**总金额*/
@Excel(name = "总金额", width = 15)
@ApiModelProperty(value = "总金额")
private java.math.BigDecimal totalAmount;
/**商品编号*/
@Excel(name = "商品编号", width = 15)
@ApiModelProperty(value = "商品编号")
private java.lang.String skuCode;
/**支付方式1借记卡、2信用卡、3微信、4支付宝、5现金*/
@Excel(name = "支付方式1借记卡、2信用卡、3微信、4支付宝、5现金", width = 15)
@ApiModelProperty(value = "支付方式1借记卡、2信用卡、3微信、4支付宝、5现金")
private java.lang.String paymentType;
/**订单状态1未付款、2已付款、3已发货、4已签收*/
@Excel(name = "订单状态1未付款、2已付款、3已发货、4已签收", width = 15)
@ApiModelProperty(value = "订单状态1未付款、2已付款、3已发货、4已签收")
private java.lang.String orderStatus;
/**购买用户id*/
@Excel(name = "购买用户id", width = 15)
@ApiModelProperty(value = "购买用户id")
private java.lang.String paymentUserId;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private java.lang.String sysOrgCode;
/**订单签名*/
@ApiModelProperty(value = "订单签名")
private String orderSign;
}

View File

@ -4,12 +4,14 @@ import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecg.common.util.RedisUtil;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
@ -21,164 +23,301 @@ import lombok.experimental.Accessors;
/**
* @Description: 学校信息表
* @Author: jeecg-boot
* @Date: 2023-11-29
* @Date: 2023-11-29
* @Version: V1.0
*/
@Data
@TableName("yx_school")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="yx_school对象", description="学校信息表")
@ApiModel(value = "yx_school对象", description = "学校信息表")
public class YxSchool implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**自定id*/
/**
* 自定id
*/
@ApiModelProperty(value = "自定id")
private String numId;
/**学校名称*/
@Excel(name = "学校名称", width = 15)
/**
* 学校名称
*/
@Excel(name = "学校名称", width = 15)
@ApiModelProperty(value = "学校名称")
private java.lang.String schoolName;
/**学校编码*/
@Excel(name = "学校编码", width = 15)
/**
* 学校编码
*/
@Excel(name = "学校编码", width = 15)
@ApiModelProperty(value = "学校编码")
private java.lang.String schoolCode;
/**院校编码*/
@Excel(name = "院校编码", width = 15)
/**
* 院校编码
*/
@Excel(name = "院校编码", width = 15)
@ApiModelProperty(value = "院校编码")
private java.lang.String institutionCode;
/**官方网址*/
@Excel(name = "官方网址", width = 15)
/**
* 官方网址
*/
@Excel(name = "官方网址", width = 15)
@ApiModelProperty(value = "官方网址")
private java.lang.String schoolWebsiteAddress;
/**学校电话*/
@Excel(name = "学校电话", width = 15)
/**
* 学校电话
*/
@Excel(name = "学校电话", width = 15)
@ApiModelProperty(value = "学校电话")
private java.lang.String schoolPhone;
/**电子邮箱*/
@Excel(name = "电子邮箱", width = 15)
/**
* 电子邮箱
*/
@Excel(name = "电子邮箱", width = 15)
@ApiModelProperty(value = "电子邮箱")
private java.lang.String schoolEmail;
/**学校图标*/
@Excel(name = "学校图标", width = 15)
/**
* 学校图标
*/
@Excel(name = "学校图标", width = 15)
@ApiModelProperty(value = "学校图标")
private java.lang.String schoolIcon;
/**办学日期*/
@Excel(name = "办学日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
/**
* 办学日期
*/
@Excel(name = "办学日期", width = 15)
/*@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")*/
@ApiModelProperty(value = "办学日期")
private java.util.Date schoolOpenDate;
/**省*/
@Excel(name = "省份", width = 15)
private String schoolOpenDate;
/**
*
*/
@Excel(name = "省份", width = 15)
@ApiModelProperty(value = "省份")
private java.lang.String province;
/**市*/
@Excel(name = "城市", width = 15)
/**
*
*/
@Excel(name = "城市", width = 15)
@ApiModelProperty(value = "城市")
private java.lang.String city;
/**区*/
@Excel(name = "区域", width = 15)
/**
*
*/
@Excel(name = "区域", width = 15)
@ApiModelProperty(value = "区域")
private java.lang.String area;
/**详细地址*/
@Excel(name = "详细地址", width = 15)
/**
* 详细地址
*/
@Excel(name = "详细地址", width = 15)
@ApiModelProperty(value = "详细地址")
private java.lang.String street;
/**隶属于*/
@Excel(name = "隶属于", width = 15)
/**
* 隶属于
*/
@Excel(name = "隶属于", width = 15)
@ApiModelProperty(value = "隶属于")
private java.lang.String affiliation;
/**办学性质*/
@Excel(name = "办学性质", width = 15)
/**
* 办学性质
*/
@Excel(name = "办学性质", width = 15)
@ApiModelProperty(value = "办学性质")
private java.lang.String schoolNature;
/**办学类型*/
/**
* 办学类型
*/
@Excel(name = "办学类型", width = 15)
@ApiModelProperty(value = "办学类型")
private java.lang.String schoolType;
/**院校类型*/
@Excel(name = "院校类型", width = 15)
/**
* 院校类型
*/
@Excel(name = "院校类型", width = 15)
@ApiModelProperty(value = "院校类型")
private java.lang.String institutionType;
/**博士点*/
@Excel(name = "博士点", width = 15)
/**
* 博士点
*/
@Excel(name = "博士点", width = 15)
@ApiModelProperty(value = "博士点")
private java.lang.Integer doctoralPoint;
/**硕士点*/
@Excel(name = "硕士点", width = 15)
/**
* 硕士点
*/
@Excel(name = "硕士点", width = 15)
@ApiModelProperty(value = "硕士点")
private java.lang.Integer masterPoint;
/**重点学科*/
@Excel(name = "重点学科", width = 15)
@ApiModelProperty(value = "重点学科")
private java.lang.Integer keyDisciplines;
/**重点实验室*/
@Excel(name = "重点实验室", width = 15)
@ApiModelProperty(value = "重点实验室")
private java.lang.Integer keyLaboratory;
/**学生人数*/
@Excel(name = "学生人数", width = 15)
/**
* 学生人数
*/
@Excel(name = "学生人数", width = 15)
@ApiModelProperty(value = "学生人数")
private java.lang.String studentNum;
/**基本信息*/
@Excel(name = "基本信息", width = 15)
/**
* 基本信息
*/
@Excel(name = "基本信息", width = 15)
@ApiModelProperty(value = "基本信息")
private java.lang.String baseInfo;
/**历史文化*/
@Excel(name = "历史文化", width = 15)
@ApiModelProperty(value = "历史文化")
private java.lang.String hisotryCulture;
/**删除标识*/
@Excel(name = "删除标识", width = 15)
/**
* 删除标识
*/
@Excel(name = "删除标识", width = 15)
@ApiModelProperty(value = "删除标识")
@TableLogic
private java.lang.Integer delFlag;
/**创建人*/
/**
* 创建人
*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
/**
* 创建日期
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
/**
* 更新人
*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
/**
* 更新日期
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**所属部门*/
/**
* 所属部门
*/
@ApiModelProperty(value = "所属部门")
private java.lang.String sysOrgCode;
/**标签*/
@Excel(name = "标签", width = 15)
/**
* 标签
*/
@Excel(name = "标签", width = 15)
@ApiModelProperty(value = "标签")
private java.lang.String tags;
/**学校批次*/
@Excel(name = "学校批次", width = 15)
/**
* 学校批次
*/
@Excel(name = "学校批次", width = 15)
@ApiModelProperty(value = "学校批次")
private java.lang.String schoolBatch;
/**985工程*/
@Excel(name = "985工程", width = 15)
/**
* 985工程
*/
@Excel(name = "985工程", width = 15)
@ApiModelProperty(value = "985工程")
private java.lang.Integer is985;
/**211工程*/
@Excel(name = "211工程", width = 15)
/**
* 211工程
*/
@Excel(name = "211工程", width = 15)
@ApiModelProperty(value = "211工程")
private java.lang.Integer is211;
/**强基计划*/
@Excel(name = "强基计划", width = 15)
/**
* 强基计划
*/
@Excel(name = "强基计划", width = 15)
@ApiModelProperty(value = "强基计划")
private java.lang.Integer isStrengthen;
/**占地面积(亩)*/
@Excel(name = "占地面积(亩)", width = 15)
/**
* 占地面积()
*/
@Excel(name = "占地面积(亩)", width = 15)
@ApiModelProperty(value = "占地面积(亩)")
private java.lang.Double are;
/**
* 旧院校名称
*/
@Excel(name = "旧院校名称", width = 15)
@ApiModelProperty(value = "旧院校名称")
private java.lang.String oldSchoolName;
/**
* 统一代码
*/
@Excel(name = "统一代码", width = 15)
@ApiModelProperty(value = "统一代码")
private java.lang.String unifiedCode;
/**
* 一流大学
*/
@Excel(name = "一流大学", width = 15)
@ApiModelProperty(value = "一流大学")
private java.lang.String yldx;
/**
* 省重/国重
*/
@Excel(name = "国重/省重", width = 15)
@ApiModelProperty(value = "国重/省重")
private java.lang.String gzsz;
/**
* 保研率
*/
@Excel(name = "保研率", width = 15)
@ApiModelProperty(value = "保研率")
private java.lang.String byl;
/**
* 国家特色专业
*/
@Excel(name = "国家特色专业", width = 15)
@ApiModelProperty(value = "国家特色专业")
private java.lang.String gjtszy;
/**
* 省特色专业
*/
@Excel(name = "省特色专业", width = 15)
@ApiModelProperty(value = "省特色专业")
private java.lang.String stszy;
/**
* 是否国重点
*/
@Excel(name = "是否国重点", width = 15)
@ApiModelProperty(value = "是否国重点")
private java.lang.String gzd;
/**
* 世界一流
*/
@Excel(name = "世界一流", width = 15)
@ApiModelProperty(value = "世界一流")
private java.lang.String sjyl;
/**
* 是否双一流
*/
@Excel(name = "是否双一流", width = 15)
@ApiModelProperty(value = "是否双一流")
private java.lang.String sfsyl;
/**
* 男生占比
*/
@Excel(name = "男生占比", width = 15)
@ApiModelProperty(value = "男生占比")
private java.lang.Double maleRatio;
/**
* 女生占比
*/
@Excel(name = "女生占比", width = 15)
@ApiModelProperty(value = "女生占比")
private java.lang.Double femaleRatio;
/**
* 是否是艺术
*/
@Excel(name = "是否是艺术", width = 15)
@ApiModelProperty(value = "是否是艺术")
private java.lang.Integer isYs;
}

View File

@ -0,0 +1,74 @@
package org.jeecg.modules.yx.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: 子级院校表
* @Author: jeecg-boot
* @Date: 2024-02-20
* @Version: V1.0
*/
@Data
@TableName("yx_school_child")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="yx_school_child对象", description="子级院校表")
public class YxSchoolChild implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**院校id*/
@Excel(name = "院校id", width = 15)
@ApiModelProperty(value = "院校id")
private java.lang.String schoolId;
/**院校名称*/
@Excel(name = "院校名称", width = 15)
@ApiModelProperty(value = "院校名称")
private java.lang.String schoolName;
/**子级院校名称*/
@Excel(name = "子级院校名称", width = 15)
@ApiModelProperty(value = "子级院校名称")
private java.lang.String schoolChildName;
/**院校编码*/
@Excel(name = "院校编码", width = 15)
@ApiModelProperty(value = "院校编码")
private java.lang.String schoolCode;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private java.lang.String sysOrgCode;
}

View File

@ -52,6 +52,10 @@ public class YxSchoolMajor implements Serializable {
@Excel(name = "学费", width = 15)
@ApiModelProperty(value = "学费")
private java.math.BigDecimal tuition;
/**学制*/
@Excel(name = "学制", width = 15)
@ApiModelProperty(value = "学制")
private java.lang.String semester;
/**备注*/
@Excel(name = "备注", width = 15)
@ApiModelProperty(value = "备注")
@ -93,9 +97,6 @@ public class YxSchoolMajor implements Serializable {
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private java.lang.String sysOrgCode;
@ApiModelProperty(value = "批次")
private String batch;
@ -106,6 +107,17 @@ public class YxSchoolMajor implements Serializable {
*/
@ApiModelProperty(value = "专业类型")
private String majorType;
/**
* 二级专业类型
*/
@ApiModelProperty(value = "二级专业类型")
private String majorTypeChild;
/**
* 主考科目
*/
@ApiModelProperty(value = "主考科目")
private String mainSubjects;
/**
* 计划招生人数
*/

View File

@ -0,0 +1,178 @@
package org.jeecg.modules.yx.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: 院校硕士研究生信息
* @Author: jeecg-boot
* @Date: 2024-03-03
* @Version: V1.0
*/
@Data
@TableName("yx_school_master_degree")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="yx_school_master_degree对象", description="院校硕士研究生信息")
public class YxSchoolMasterDegree implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**年份*/
@Excel(name = "年份", width = 15)
@ApiModelProperty(value = "年份")
private java.lang.String year;
/**门类代码*/
@Excel(name = "门类代码", width = 15)
@ApiModelProperty(value = "门类代码")
private java.lang.String categoryCode;
/**门类名称*/
@Excel(name = "门类名称", width = 15)
@ApiModelProperty(value = "门类名称")
private java.lang.String categoryName;
/**学科代码*/
@Excel(name = "学科代码", width = 15)
@ApiModelProperty(value = "学科代码")
private java.lang.String subjectCode;
/**学科领域*/
@Excel(name = "学科领域", width = 15)
@ApiModelProperty(value = "学科领域")
private java.lang.String disciplineField;
/**学位性质*/
@Excel(name = "学位性质", width = 15)
@ApiModelProperty(value = "学位性质")
private java.lang.String degreeNature;
/**专业名称*/
@Excel(name = "专业名称", width = 15)
@ApiModelProperty(value = "专业名称")
private java.lang.String majorName;
/**研究方向*/
@Excel(name = "研究方向", width = 15)
@ApiModelProperty(value = "研究方向")
private java.lang.String researchDirection;
/**院校编码*/
@Excel(name = "院校编码", width = 15)
@ApiModelProperty(value = "院校编码")
private java.lang.String schoolMasterCode;
/**院校id*/
@Excel(name = "院校id", width = 15)
@ApiModelProperty(value = "院校id")
private java.lang.String schoolId;
/**院校名称*/
@Excel(name = "院校名称", width = 15)
@ApiModelProperty(value = "院校名称")
private java.lang.String schoolName;
/**所在地*/
@Excel(name = "所在地", width = 15)
@ApiModelProperty(value = "所在地")
private java.lang.String location;
/**研究生院*/
@Excel(name = "研究生院", width = 15)
@ApiModelProperty(value = "研究生院")
private java.lang.String graduateSchool;
/**自划线*/
@Excel(name = "自划线", width = 15)
@ApiModelProperty(value = "自划线")
private java.lang.String selfMarking;
/**校博士点*/
@Excel(name = "校博士点", width = 15)
@ApiModelProperty(value = "校博士点")
private java.lang.String schoolDoctoralProgram;
/**博士专业*/
@Excel(name = "博士专业", width = 15)
@ApiModelProperty(value = "博士专业")
private java.lang.String doctoralMajor;
/**第四轮学科评估*/
@Excel(name = "第四轮学科评估", width = 15)
@ApiModelProperty(value = "第四轮学科评估")
private java.lang.String fourthRoundSubjectEvaluation;
/**双一流学科*/
@Excel(name = "双一流学科", width = 15)
@ApiModelProperty(value = "双一流学科")
private java.lang.String doubleFirstClassDisciplines;
/**考试方式*/
@Excel(name = "考试方式", width = 15)
@ApiModelProperty(value = "考试方式")
private java.lang.String examinationMethods;
/**院系所*/
@Excel(name = "院系所", width = 15)
@ApiModelProperty(value = "院系所")
private java.lang.String departmentsAndFaculties;
/**学习方式*/
@Excel(name = "学习方式", width = 15)
@ApiModelProperty(value = "学习方式")
private java.lang.String learningStyle;
/**指导教师*/
@Excel(name = "指导教师", width = 15)
@ApiModelProperty(value = "指导教师")
private java.lang.String teacher;
/**拟招生人数*/
@Excel(name = "拟招生人数", width = 15)
@ApiModelProperty(value = "拟招生人数")
private java.lang.String intendedEnrollment;
/**接收退役*/
@Excel(name = "接收退役", width = 15)
@ApiModelProperty(value = "接收退役")
private java.lang.String acceptRetirement;
/**详情链接*/
@Excel(name = "详情链接", width = 15)
@ApiModelProperty(value = "详情链接")
private java.lang.String detailedLink;
/**备注*/
@Excel(name = "备注", width = 15)
@ApiModelProperty(value = "备注")
private java.lang.String detail;
/**政治*/
@Excel(name = "政治", width = 15)
@ApiModelProperty(value = "政治")
private java.lang.String politics;
/**外语*/
@Excel(name = "外语", width = 15)
@ApiModelProperty(value = "外语")
private java.lang.String foreignLanguage;
/**业务课一*/
@Excel(name = "业务课一", width = 15)
@ApiModelProperty(value = "业务课一")
private java.lang.String businessCourse1;
/**业务课二*/
@Excel(name = "业务课二", width = 15)
@ApiModelProperty(value = "业务课二")
private java.lang.String businessCourse2;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private java.lang.String sysOrgCode;
}

View File

@ -33,7 +33,7 @@ public class YxScoreSegment implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**创建人*/
@ -67,6 +67,10 @@ public class YxScoreSegment implements Serializable {
@Excel(name = "专业类别", width = 15)
@ApiModelProperty(value = "专业类别")
private java.lang.String professionalCategory;
/**专业类别子级*/
@Excel(name = "专业类别子级", width = 15)
@ApiModelProperty(value = "专业类别子级")
private java.lang.String professionalCategoryChild;
/**年份*/
@Excel(name = "年份", width = 15)
@ApiModelProperty(value = "年份")
@ -75,4 +79,11 @@ public class YxScoreSegment implements Serializable {
@Excel(name = "累计人数", width = 15)
@ApiModelProperty(value = "累计人数")
private java.lang.Integer personNum;
@ApiModelProperty(value = "占比")
private BigDecimal rate;
@ApiModelProperty(value = "是否是固定段位")
private Integer fixedRank;
}

View File

@ -1,13 +1,17 @@
package org.jeecg.modules.yx.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecg.modules.yx.dto.ProfessionalCategoryChildrenDTO;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import io.swagger.annotations.ApiModel;
@ -49,6 +53,11 @@ public class YxUserScore implements Serializable {
@Excel(name = "专业类别(美术类/...)", width = 15)
@ApiModelProperty(value = "专业类别(美术类/...)")
private java.lang.String professionalCategory;
/**子级专业类别*/
@Excel(name = "子级专业类别", width = 15)
@ApiModelProperty(value = "子级专业类别")
private java.lang.String professionalCategoryChildren;
/**选课*/
@Excel(name = "选课", width = 15)
@ApiModelProperty(value = "选课")
@ -99,9 +108,44 @@ public class YxUserScore implements Serializable {
@Excel(name = "英语成绩", width = 15)
@ApiModelProperty(value = "英语成绩")
private java.math.BigDecimal englishScore;
/**音乐表演声乐*/
@ApiModelProperty(value = "音乐表演声乐")
private BigDecimal yybysy;
/**音乐表演器乐*/
@ApiModelProperty(value = "音乐表演器乐")
private BigDecimal yybyqy;
/**音乐教育 */
@ApiModelProperty(value = "音乐教育")
private BigDecimal yyjy;
/**服装表演 */
@ApiModelProperty(value = "服装表演")
private BigDecimal fzby;
/**戏剧影视导演 */
@ApiModelProperty(value = "戏剧影视导演")
private BigDecimal xjysdy;
/**戏剧影视表演 */
@ApiModelProperty(value = "戏剧影视表演")
private BigDecimal xjysby;
//===================
/*是否是vip 0-不是,1-是*/
@TableField(exist = false)
private Integer isVip=0;
@ApiModelProperty(value = "子级专业列表")
@TableField(exist = false)
private List<ProfessionalCategoryChildrenDTO> professionalCategoryChildrenList;
/*转换为上一年的分数*/
@JsonFormat
@TableField(exist = false)
private BigDecimal convertOldScore;
/**艺术舞蹈 */
@TableField(exist = false)
@ApiModelProperty(value = "艺术舞蹈")
private BigDecimal yswd;
/**国际标准舞 */
@TableField(exist = false)
@ApiModelProperty(value = "国际标准舞")
private BigDecimal gjbzw;
}

View File

@ -33,17 +33,13 @@ public class YxVipCard implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "主键")
private java.lang.String id;
private java.lang.Integer id;
/**卡号*/
@Excel(name = "卡号", width = 15)
@ApiModelProperty(value = "卡号")
private java.lang.String cardNum;
/**卡密*/
@Excel(name = "卡密", width = 15)
@ApiModelProperty(value = "卡密")
private java.lang.String cardPassword;
/**有效日期*/
@Excel(name = "有效日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")

View File

@ -0,0 +1,82 @@
package org.jeecg.modules.yx.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: VIP库存表
* @Author: jeecg-boot
* @Date: 2024-02-23
* @Version: V1.0
*/
@Data
@TableName("yx_vip_sku")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="yx_vip_sku对象", description="VIP库存表")
public class YxVipSku implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**库存名称*/
@Excel(name = "库存名称", width = 15)
@ApiModelProperty(value = "库存名称")
private java.lang.String skuName;
/**库存编号*/
@Excel(name = "库存编号", width = 15)
@ApiModelProperty(value = "库存编号")
private java.lang.String skuCode;
/**原始价*/
@Excel(name = "原始价", width = 15)
@ApiModelProperty(value = "原始价")
private java.math.BigDecimal skuOriginalPrice;
/**优惠价*/
@Excel(name = "优惠价", width = 15)
@ApiModelProperty(value = "优惠价")
private java.math.BigDecimal skuPrice;
/**是否上架*/
@Excel(name = "是否上架", width = 15)
@ApiModelProperty(value = "是否上架")
private java.lang.String saleable;
/**介绍*/
@Excel(name = "介绍", width = 15)
@ApiModelProperty(value = "介绍")
private java.lang.String skuDetail;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private java.lang.String sysOrgCode;
}

View File

@ -49,6 +49,14 @@ public class YxVolunteerRecord implements Serializable {
@Excel(name = "招生代码", width = 15)
@ApiModelProperty(value = "招生代码")
private java.lang.String enrollmentCode;
/**录取概率*/
@Excel(name = "录取概率", width = 15)
@ApiModelProperty(value = "录取概率")
private BigDecimal enrollProbability;
/**折合分数*/
@Excel(name = "折合分数", width = 15)
@ApiModelProperty(value = "折合分数")
private BigDecimal studentConvertedScore;
/**志愿顺序*/
@Excel(name = "志愿顺序", width = 15)
@ApiModelProperty(value = "志愿顺序")

View File

@ -0,0 +1,17 @@
package org.jeecg.modules.yx.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.yx.entity.YxArwu;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 软科排名表
* @Author: jeecg-boot
* @Date: 2024-03-03
* @Version: V1.0
*/
public interface YxArwuMapper extends BaseMapper<YxArwu> {
}

View File

@ -14,4 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface YxHistoryMajorEnrollMapper extends BaseMapper<YxHistoryMajorEnroll> {
List<YxHistoryMajorEnroll> getDataGroupBySchoolCodeAndMaxYear(@Param("schoolCodeList") List<String> schoolCodeList);
}

View File

@ -0,0 +1,17 @@
package org.jeecg.modules.yx.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.yx.entity.YxOrder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 订单表
* @Author: jeecg-boot
* @Date: 2024-02-23
* @Version: V1.0
*/
public interface YxOrderMapper extends BaseMapper<YxOrder> {
}

View File

@ -0,0 +1,17 @@
package org.jeecg.modules.yx.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.yx.entity.YxSchoolChild;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 子级院校表
* @Author: jeecg-boot
* @Date: 2024-02-20
* @Version: V1.0
*/
public interface YxSchoolChildMapper extends BaseMapper<YxSchoolChild> {
}

View File

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.art.dto.ArtSchoolDTO;
import org.jeecg.modules.art.vo.QueryRecommendMajorVO;
import org.jeecg.modules.mini.dto.MiniSchoolDTO;
import org.jeecg.modules.yx.entity.YxSchool;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@ -30,4 +31,13 @@ public interface YxSchoolMapper extends BaseMapper<YxSchool> {
*/
IPage<ArtSchoolDTO> searchSm(@Param("page")Page<Object> page,@Param("qvo") QueryRecommendMajorVO queryRecommendMajorVO);
List<YxSchool> oldList();
/**
* 小程序端-查询院校列表
*/
IPage<MiniSchoolDTO> miniSchoolSearch(@Param("page")Page<Object> page, @Param("qvo") QueryRecommendMajorVO queryRecommendMajorVO);
IPage<MiniSchoolDTO> miniSchoolSearchSm(@Param("page")Page<Object> page, @Param("qvo") QueryRecommendMajorVO queryRecommendMajorVO);
}

View File

@ -0,0 +1,17 @@
package org.jeecg.modules.yx.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.yx.entity.YxSchoolMasterDegree;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 院校硕士研究生信息
* @Author: jeecg-boot
* @Date: 2024-03-03
* @Version: V1.0
*/
public interface YxSchoolMasterDegreeMapper extends BaseMapper<YxSchoolMasterDegree> {
}

View File

@ -0,0 +1,17 @@
package org.jeecg.modules.yx.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.yx.entity.YxVipSku;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: VIP库存表
* @Author: jeecg-boot
* @Date: 2024-02-23
* @Version: V1.0
*/
public interface YxVipSkuMapper extends BaseMapper<YxVipSku> {
}

View File

@ -17,5 +17,5 @@ public interface YxVolunteerRecordMapper extends BaseMapper<YxVolunteerRecord> {
//根据createBy获取 专业类型的填报数据
List<YxVolunteerRecord> getListByCreateBy(@Param("yxVolunteerRecord") YxVolunteerRecord yxVolunteerRecord);
List<VolunteerRecordDTO> listDTOByVolunteerId(@Param("volunteerId") String volunteerId,@Param("cognitioPolyclinic")String cognitioPolyclinic);
List<VolunteerRecordDTO> listDTOByVolunteerId(@Param("volunteerId") String volunteerId);
}

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.yx.mapper.YxArwuMapper">
</mapper>

View File

@ -2,4 +2,20 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.yx.mapper.YxHistoryMajorEnrollMapper">
</mapper>
<select id="getDataGroupBySchoolCodeAndMaxYear"
resultType="org.jeecg.modules.yx.entity.YxHistoryMajorEnroll">
SELECT school_code as schoolCode,
max(year) as year,
min_admission_line as admissionLine
FROM (
SELECT school_code, year, MIN(admission_line) AS min_admission_line
FROM yx_history_major_enroll
WHERE school_code IN
<foreach collection="schoolCodeList" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
GROUP BY school_code, year
) ss
GROUP BY school_code;
</select>
</mapper>

View File

@ -20,6 +20,6 @@
<if test="queryvo.category!=null and queryvo.category!=''">
AND category = #{queryvo.category}
</if>
ORDER BY FIELD(batch, '本科A段', '本科B段','本科', '专')
ORDER BY `year` DESC,FIELD(batch, '本科A段', '本科B段','本科', '高职高专')
</select>
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.yx.mapper.YxOrderMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.yx.mapper.YxSchoolChildMapper">
</mapper>

View File

@ -2,146 +2,194 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.yx.mapper.YxSchoolMajorMapper">
<select id="recommendMajorList" resultType="org.jeecg.modules.art.dto.RecommendMajorDTO">
SELECT
<select id="recommendMajorList" resultType="org.jeecg.modules.art.dto.RecommendMajorDTO">
SELECT
s.id as schoolId,
s.school_name,
s.institution_code as institutionCode,
s.province as province,
s.school_nature as propertyName,
s.institution_type as institutionType,
s.school_icon as schoolIcon,
m.major_desc as majorRemarks,
m.semester as studyYear,
m.first_level_discipline as firstLevelDiscipline,
s.school_name,
s.institution_code as institutionCode,
s.province as province,
s.school_nature as propertyName,
s.institution_type as institutionType,
s.school_icon as schoolIcon,
m.major_desc as majorRemarks,
m.semester as studyYear,
m.first_level_discipline as firstLevelDiscipline,
sm.major_name,
sm.major_type,
sm.major_type_child,
sm.main_subjects,
sm.detail as majorDetail,
sm.school_code,
sm.batch as batch,
sm.enrollment_code as enrollmentCode,
sm.category as category,
sm.major_name,
sm.detail as majorDetail,
sm.school_code,
sm.batch as batch,
sm.enrollment_code as enrollmentCode,
sm.category as category,
sm.rules_enroll_probability as rulesEnrollProbability,
sm.probability_operator as probabilityOperator,
sm.cultural_control_line as culturalControlLine,
sm.special_control_line as specialControlLine,
sm.batch as batch,
sm.enrollment_code as enrollmentCode,
sm.major_code,
sm.tuition as studyCost,
sm.plan_num as planNum
FROM yx_school_major sm
LEFT JOIN ( SELECT major_code,major_desc,semester,first_level_discipline FROM yx_major GROUP BY major_code ORDER
BY major_desc ) m ON m.major_code = sm.major_code
LEFT JOIN (SELECT school_id,school_code FROM yx_school_child group by school_code) sc ON sc.school_code = sm.school_code
LEFT JOIN yx_school s ON s.id = sc.school_id
LEFT JOIn yx_first_level_disciplines fld ON fld.id = m.first_level_discipline
WHERE sm.rules_enroll_probability is not null
<if test="queryvo.schoolName!=null and queryvo.schoolName!=''">
AND (s.school_name like concat('%',#{queryvo.schoolName},'%') or sm.major_name like
concat('%',#{queryvo.schoolName},'%'))
</if>
<if test="queryvo.schoolCode!=null and queryvo.schoolCode!=''">
AND sm.school_code = #{queryvo.schoolCode}
</if>
<if test="queryvo.majorName!=null and queryvo.majorName!=''">
AND sm.major_name like concat('%',#{queryvo.majorName},'%')
</if>
<!--专业编码-->
<if test="queryvo.majorCodeList!=null and queryvo.majorCodeList.size>0">
AND m.major_code in
<foreach collection="queryvo.majorCodeList" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<!--地区-->
<if test="queryvo.addressList!=null and queryvo.addressList.size>0">
AND s.province in
<foreach collection="queryvo.addressList" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<!--文理分科-->
<if test="queryvo.cognitioPolyclinic!=null and queryvo.cognitioPolyclinic!=''">
AND sm.category = #{queryvo.cognitioPolyclinic}
</if>
<if test="queryvo.batch!=null and queryvo.batch!=''">
AND sm.batch = #{queryvo.batch}
</if>
sm.rules_enroll_probability as rulesEnrollProbability,
sm.probability_operator as probabilityOperator,
sm.cultural_control_line as culturalControlLine,
sm.special_control_line as specialControlLine,
sm.batch as batch,
sm.enrollment_code as enrollmentCode,
sm.major_code,
sm.tuition as studyCost,
sm.plan_num as planNum
FROM yx_school_major sm
LEFT JOIN yx_major m ON m.major_code = sm.major_code
LEFT JOIN yx_school s ON s.school_code = sm.school_code
LEFT JOIn yx_first_level_disciplines fld ON fld.id = m.first_level_discipline
WHERE sm.rules_enroll_probability is not null
<if test="queryvo.schoolName!=null and queryvo.schoolName!=''">
AND (s.school_name like concat('%',#{queryvo.schoolName},'%') or m.major_name like
concat('%',#{queryvo.schoolName},'%'))
</if>
<if test="queryvo.schoolCode!=null and queryvo.schoolCode!=''">
AND sm.school_code = #{queryvo.schoolCode}
</if>
<if test="queryvo.majorName!=null and queryvo.majorName!=''">
AND m.major_name like concat('%',#{queryvo.majorName},'%')
</if>
<!--地区-->
<if test="queryvo.addressList!=null and queryvo.addressList.size>0">
AND s.province in
<foreach collection="queryvo.addressList" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<!--文理分科-->
<if test="queryvo.cognitioPolyclinic!=null and queryvo.cognitioPolyclinic!=''">
AND sm.category = #{queryvo.cognitioPolyclinic}
</if>
<if test="queryvo.batch!=null and queryvo.batch!=''">
AND sm.batch = #{queryvo.batch}
</if>
<if test="queryvo.batchList!=null and queryvo.batchList.size>0">
AND sm.batch in
<foreach collection="queryvo.batchList" index="index" item="b" open="(" separator="," close=")">
#{b}
</foreach>
</if>
<!--录取方式-->
<if test="queryvo.rulesEnrollProbability!=null and queryvo.rulesEnrollProbability!=''">
AND sm.rules_enroll_probability = #{queryvo.rulesEnrollProbability}
</if>
<if test="queryvo.schoolNatureList!=null and queryvo.schoolNatureList.size>0">
AND s.school_nature in
<foreach collection="queryvo.schoolNatureList" index="index" item="b" open="(" separator="," close=")">
#{b}
</foreach>
</if>
<if test="queryvo.batchList!=null and queryvo.batchList.size>0">
AND sm.batch in
<foreach collection="queryvo.batchList" index="index" item="b" open="(" separator="," close=")">
#{b}
</foreach>
</if>
<!--录取方式-->
<if test="queryvo.rulesEnrollProbability!=null and queryvo.rulesEnrollProbability!=''">
AND sm.rules_enroll_probability = #{queryvo.rulesEnrollProbability}
</if>
<if test="queryvo.schoolNatureList!=null and queryvo.schoolNatureList.size>0">
AND s.school_nature in
<foreach collection="queryvo.schoolNatureList" index="index" item="b" open="(" separator="," close=")">
#{b}
</foreach>
</if>
<if test="queryvo.tagsList!=null and queryvo.tagsList.size>0">
<choose>
<when test="queryvo.tagsList.contains('985') and queryvo.tagsList.contains('211')">
AND s.is985 = '1' AND s.is211 = '1'
</when>
<when test="queryvo.tagsList.contains('985')">
AND s.is985 = '1'
</when>
<when test="queryvo.tagsList.contains('211')">
AND s.is211 = '1'
</when>
<when test="queryvo.tagsList.contains('双一流')">
AND s.sfsyl !='双一流'
</when>
<otherwise>
</otherwise>
</choose>
</if>
<if test="queryvo.professionalCategory!=null and queryvo.professionalCategory!=''">
<!--AND fld.disciplines_name like concat('%',#{queryvo.professionalCategory},'%')-->
AND sm.major_type like concat('%',#{queryvo.professionalCategory},'%')
</if>
<!--音乐类 子项专业查询 start-->
<if test="queryvo.professionalCategory!=null and queryvo.professionalCategory=='音乐类' and queryvo.pCategoryChildrenList!=null and queryvo.pCategoryChildrenList.size>0">
AND(
<choose>
<when test="queryvo.pCategoryChildrenList.contains('音乐表演声乐')">
sm.main_subjects like '%声乐%' AND (
sm.major_type_child = '音乐表演'
<if test="queryvo.pCategoryChildrenList.contains('音乐教育')">
or sm.major_type_child = '音乐教育'
</if>
)
</when>
<when test="queryvo.pCategoryChildrenList.contains('音乐表演器乐')">
sm.main_subjects like '%器乐%' AND (
sm.major_type_child = '音乐表演'
<if test="queryvo.pCategoryChildrenList.contains('音乐教育')">
or sm.major_type_child = '音乐教育'
</if>
)
</when>
</choose>
)
</if>
<!--音乐类 子项专业查询 end-->
<!--表演类 子项专业查询 start-->
<if test="queryvo.professionalCategory!=null and queryvo.professionalCategory=='表演类' and queryvo.pCategoryChildrenList!=null and queryvo.pCategoryChildrenList.size>0">
AND s.main_subjects in
<foreach collection="queryvo.pCategoryChildrenList" index="index" item="b" open="(" separator="," close=")">
#{b}
</foreach>
</if>
<!--表演类 子项专业查询 end-->
/*院校类型*/
<if test="queryvo.institutionType!=null and queryvo.institutionType!=''">
AND s.institution_type= #{queryvo.institutionType}
</if>
/*办学性质*/
<if test="queryvo.schoolNature!=null and queryvo.schoolNature!=''">
AND s.school_nature= #{queryvo.schoolNature}
</if>
</select>
<if test="queryvo.tagsList!=null and queryvo.tagsList.size>0">
<choose>
<when test="queryvo.tagsList.contains('985') and queryvo.tagsList.contains('211')">
AND s.is985 = '1' AND s.is211 = '1'
</when>
<when test="queryvo.tagsList.contains('985')">
AND s.is985 = '1'
</when>
<when test="queryvo.tagsList.contains('211')">
AND s.is211 = '1'
</when>
<otherwise>
</otherwise>
</choose>
</if>
<if test="queryvo.professionalCategory!=null and queryvo.professionalCategory!=''">
<!--AND fld.disciplines_name like concat('%',#{queryvo.professionalCategory},'%')-->
AND sm.major_type like concat('%',#{queryvo.professionalCategory},'%')
</if>
/*院校类型*/
<if test="queryvo.institutionType!=null and queryvo.institutionType!=''">
AND s.institution_type= #{queryvo.institutionType}
</if>
/*办学性质*/
<if test="queryvo.schoolNature!=null and queryvo.schoolNature!=''">
AND s.school_nature= #{queryvo.schoolNature}
</if>
</select>
<select id="recommendMajorPage" resultType="org.jeecg.modules.art.dto.RecommendMajorDTO">
SELECT
sc.school_name,
sm.school_code,
s.province as province,
s.school_nature as propertyName,
s.institution_type as institutionType,
<select id="recommendMajorPage" resultType="org.jeecg.modules.art.dto.RecommendMajorDTO">
SELECT
s.school_name,
sm.school_code,
s.province as province,
s.school_nature as propertyName,
s.institution_type as institutionType,
sm.major_name,
m.major_desc as majorRemarks,
m.semester as studyYear,
sm.major_code,
sm.tuition as studyCost
FROM yx_school_major sm
LEFT JOIN yx_major m ON m.major_code = sm.major_code
LEFT JOIN yx_school s ON s.school_code = sm.school_code
WHERE 1=1
<if test="queryvo.schoolName!=null and queryvo.schoolName!=''">
AND (s.school_name like concat('%',#{queryvo.schoolName},'%') or m.major_name like
concat('%',#{queryvo.schoolName},'%'))
</if>
<if test="queryvo.schoolCode!=null and queryvo.schoolCode!=''">
AND sm.school_code = #{queryvo.schoolCode}
</if>
<if test="queryvo.majorName!=null and queryvo.majorName!=''">
AND m.major_name like concat('%',#{queryvo.majorName},'%')
</if>
</select>
sm.major_name,
m.major_desc as majorRemarks,
m.semester as studyYear,
sm.major_code,
sm.tuition as studyCost
FROM yx_school_major sm
LEFT JOIN yx_major m ON m.major_code = sm.major_code
LEFT JOIN yx_school_child sc ON sc.school_code = sm.school_code
LEFT JOIN yx_school s ON s.id = sc.school_id
WHERE 1=1
<if test="queryvo.schoolName!=null and queryvo.schoolName!=''">
AND (s.school_name like concat('%',#{queryvo.schoolName},'%') or m.major_name like
concat('%',#{queryvo.schoolName},'%'))
</if>
<if test="queryvo.schoolCode!=null and queryvo.schoolCode!=''">
AND sm.school_code = #{queryvo.schoolCode}
</if>
<if test="queryvo.majorName!=null and queryvo.majorName!=''">
AND m.major_name like concat('%',#{queryvo.majorName},'%')
</if>
</select>
<select id="dtoPage" resultType="org.jeecg.modules.yx.dto.YxSchoolMajorDTO">
SELECT sm.*,
m.semester as semester,
m.educational_level as educationalLevel,
fld.disciplines_name as professionalCategory,
di.item_text as subjectCategory
m.semester as semester,
m.educational_level as educationalLevel,
fld.disciplines_name as professionalCategory,
di.item_text as subjectCategory
FROM yx_school_major sm
LEFT JOIN yx_major m ON m.major_code = sm.major_code
LEFT JOIN yx_first_level_disciplines fld ON fld.id = m.first_level_discipline

View File

@ -4,37 +4,48 @@
<select id="search" resultType="org.jeecg.modules.art.dto.ArtSchoolDTO">
SELECT
id,
school_name,
school_code,
school_icon,
school_nature,
institution_type,
school_type,
province,
city,
area,
street,
IFNULL(is211,"0") as is211,
IFNULL(is985,"0") as is985,
is_strengthen,
tags
FROM yx_school
where 1=1
s.id,
sc.school_name,
sc.school_code,
s.school_icon,
s.school_nature,
s.institution_type,
s.school_type,
s.province,
s.city,
s.area,
s.street,
IFNULL(s.is211,"0") as is211,
IFNULL(s.is985,"0") as is985,
s.sfsyl,
s.sjyl,
s.gzsz,
s.gjtszy,
s.male_ratio,
s.female_ratio,
s.gzd,
s.yldx,
s.byl,
s.stszy,
s.is_strengthen,
s.tags
FROM yx_school s
LEFT JOIN yx_school_child sc ON s.id = sc.school_id
where 1=1 AND s.is_ys = 1
<if test="qvo.schoolName!=null and qvo.schoolName!=''">
AND school_name like concat('%',#{qvo.schoolName},'%')
AND s.school_name like concat('%',#{qvo.schoolName},'%')
</if>
<if test="qvo.province!=null and qvo.province!=''">
AND province like concat('%',#{qvo.province},'%')
AND s.province like concat('%',#{qvo.province},'%')
</if>
<if test="qvo.institutionType!=null and qvo.institutionType!=''">
AND institution_type = #{qvo.institutionType}
AND s.institution_type = #{qvo.institutionType}
</if>
<if test="qvo.schoolNature!=null and qvo.schoolNature!=''">
AND school_nature = #{qvo.schoolNature}
AND s.school_nature = #{qvo.schoolNature}
</if>
<if test="qvo.schoolNatureList!=null and qvo.schoolNatureList.size>0">
AND school_nature in
AND s.school_nature in
<foreach collection="qvo.schoolNatureList" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
@ -42,47 +53,58 @@
<if test="qvo.schoolType!=null and qvo.schoolType!=''">
<choose>
<when test="qvo.schoolType=='普通本科'">
AND school_type like '%本科%'
AND s.school_type like '%本科%'
</when>
<when test="qvo.schoolType==''">
AND school_type like '%专%'
<when test="qvo.schoolType=='高职高专'">
AND s.school_type like '%高职高专%'
</when>
<otherwise>
AND school_nature = #{qvo.schoolType}
AND s.school_nature = #{qvo.schoolType}
</otherwise>
</choose>
</if>
<if test="qvo.addressList!=null and qvo.addressList.size>0">
AND province in
AND s.province in
<foreach collection="qvo.addressList" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<if test="qvo.schoolNatureList!=null and qvo.schoolNatureList.size>0">
AND s.school_nature in
<foreach collection="qvo.schoolNatureList" index="index" item="b" open="(" separator="," close=")">
#{b}
</foreach>
</if>
<if test="qvo.tagsList!=null and qvo.tagsList.size>0">
<if test="qvo.tagsList.contains('985')">
AND is985 = '1'
AND s.is985 = '1'
</if>
<if test="qvo.tagsList.contains('211')">
AND is211 = '1'
AND s.is211 = '1'
</if>
<if test="qvo.tagsList.contains('双一流')">
AND is985 = '1' AND is211 = '1'
AND s.sfsyl ='双一流'
</if>
<if test="qvo.tagsList.contains('全国重点大学')">
AND s.gzsz = '国重点'
</if>
<if test="qvo.tagsList.contains('强基计划')">
AND is_strengthen = '1'
AND s.is_strengthen = '1'
</if>
<!--AND (
<foreach collection="qvo.tagsList" index="index" item="id" separator=" AND ">
tags like concat('%',#{id},'%')
</foreach>-->
</if>
GROUP BY sc.school_name
ORDER BY gzsz,sfsyl,is985,is211 DESC
</select>
<select id="searchSm" resultType="org.jeecg.modules.art.dto.ArtSchoolDTO">
SELECT
s.id,
s.school_name,
s.school_code,
sc.school_name,
sc.school_code,
s.school_icon,
s.school_nature,
s.institution_type,
@ -93,11 +115,23 @@
s.street,
IFNULL(s.is211,"0") as is211,
IFNULL(s.is985,"0") as is985,
s.sfsyl,
s.sjyl,
s.gzsz,
s.gjtszy,
s.male_ratio,
s.female_ratio,
s.gzd,
s.yldx,
s.byl,
s.stszy,
s.is_strengthen,
s.tags
FROM yx_school s
LEFT JOIN (select major_code,school_code from yx_school_major group by major_code,school_code) sm ON sm.school_code = s.school_code
where 1=1
LEFT JOIN yx_school_child sc ON s.id = sc.school_id
LEFT JOIN (select major_code,school_code from yx_school_major group by major_code,school_code) sm ON sm.school_code = sc.school_code
where 1=1 AND s.is_ys = 1
<if test="qvo.schoolName!=null and qvo.schoolName!=''">
AND s.school_name like concat('%',#{qvo.schoolName},'%')
</if>
@ -112,8 +146,8 @@
<when test="qvo.schoolType=='普通本科'">
AND s.school_type like '%本科%'
</when>
<when test="qvo.schoolType==''">
AND s.school_type like '%专%'
<when test="qvo.schoolType=='高职高专'">
AND s.school_type like '%高职高专%'
</when>
<otherwise>
AND s.school_nature = #{qvo.schoolType}
@ -126,6 +160,12 @@
#{id}
</foreach>
</if>
<if test="qvo.schoolNatureList!=null and qvo.schoolNatureList.size>0">
AND s.school_nature in
<foreach collection="qvo.schoolNatureList" index="index" item="b" open="(" separator="," close=")">
#{b}
</foreach>
</if>
<if test="qvo.tagsList!=null and qvo.tagsList.size>0">
<if test="qvo.tagsList.contains('985')">
AND s.is985 = '1'
@ -134,7 +174,10 @@
AND s.is211 = '1'
</if>
<if test="qvo.tagsList.contains('双一流')">
AND s.is985 = '1' AND s.is211 = '1'
AND s.sfsyl = '双一流'
</if>
<if test="qvo.tagsList.contains('全国重点大学')">
AND s.gzsz = '国重点'
</if>
<if test="qvo.tagsList.contains('强基计划')">
AND s.is_strengthen = '1'
@ -144,5 +187,211 @@
tags like concat('%',#{id},'%')
</foreach>-->
</if>
GROUP BY sc.school_name
ORDER BY gzsz,sfsyl,is211,is985 DESC
</select>
<select id="oldList" resultType="org.jeecg.modules.yx.entity.YxSchool">
SELECT * FROM yx_school_old WHERE school_icon is not null
</select>
<select id="miniSchoolSearch" resultType="org.jeecg.modules.mini.dto.MiniSchoolDTO">
SELECT
s.id,
sc.school_name,
sc.school_code,
s.school_icon,
s.school_nature,
s.institution_type,
s.school_type,
s.province,
s.city,
s.area,
s.street,
IFNULL(s.is211,"0") as is211,
IFNULL(s.is985,"0") as is985,
s.sfsyl,
s.sjyl,
s.gzsz,
s.gjtszy,
s.male_ratio,
s.female_ratio,
s.gzd,
s.yldx,
s.byl,
s.stszy,
s.is_strengthen,
s.tags
FROM yx_school s
LEFT JOIN yx_school_child sc ON s.id = sc.school_id
LEFT JOIN (SELECT school_code,batch FROM yx_school_major where 1=1
<if test="qvo.professionalCategory!=null and qvo.professionalCategory!=''">
AND major_type = #{qvo.professionalCategory}
</if>
) sm ON sm.school_code = sc.school_code
where 1=1 AND s.is_ys = 1
<if test="qvo.schoolName!=null and qvo.schoolName!=''">
AND s.school_name like concat('%',#{qvo.schoolName},'%')
</if>
<!--<if test="qvo.province!=null and qvo.province!=''">
AND s.province like concat('%',#{qvo.province},'%')
</if>
<if test="qvo.institutionType!=null and qvo.institutionType!=''">
AND s.institution_type = #{qvo.institutionType}
</if>-->
<if test="qvo.schoolNatureList!=null and qvo.schoolNatureList.size>0">
AND s.school_nature in
<foreach collection="qvo.schoolNatureList" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<if test="qvo.schoolType!=null and qvo.schoolType!=''">
<choose>
<when test="qvo.schoolType=='普通本科'">
AND s.school_type like '%本科%'
</when>
<when test="qvo.schoolType=='高职高专'">
AND s.school_type like '%高职高专%'
</when>
<otherwise>
AND s.school_nature = #{qvo.schoolType}
</otherwise>
</choose>
</if>
<if test="qvo.addressList!=null and qvo.addressList.size>0">
AND s.province in
<foreach collection="qvo.addressList" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<if test="qvo.schoolNatureList!=null and qvo.schoolNatureList.size>0">
AND s.school_nature in
<foreach collection="qvo.schoolNatureList" index="index" item="b" open="(" separator="," close=")">
#{b}
</foreach>
</if>
<if test="qvo.tagsList!=null and qvo.tagsList.size>0">
<if test="qvo.tagsList.contains('985')">
AND s.is985 = '1'
</if>
<if test="qvo.tagsList.contains('211')">
AND s.is211 = '1'
</if>
<if test="qvo.tagsList.contains('双一流')">
AND s.sfsyl ='双一流'
</if>
<if test="qvo.tagsList.contains('全国重点大学')">
AND s.gzsz = '国重点'
</if>
<if test="qvo.tagsList.contains('强基计划')">
AND s.is_strengthen = '1'
</if>
</if>
<if test="qvo.institutionTypeList!=null and qvo.institutionTypeList.size>0">
AND s.institution_type in
<foreach collection="qvo.institutionTypeList" index="index" item="b" open="(" separator="," close=")">
#{b}
</foreach>
</if>
GROUP BY sc.school_code
ORDER BY field( COALESCE(sm.batch,'null'), '提前批', '本科A段', '本科B段', '本科', '高职高专','null')
</select>
<select id="miniSchoolSearchSm" resultType="org.jeecg.modules.mini.dto.MiniSchoolDTO">
SELECT
s.id,
sc.school_name,
sc.school_code,
s.school_icon,
s.school_nature,
s.institution_type,
s.school_type,
s.province,
s.city,
s.area,
s.street,
IFNULL(s.is211,"0") as is211,
IFNULL(s.is985,"0") as is985,
s.sfsyl,
s.sjyl,
s.gzsz,
s.gjtszy,
s.male_ratio,
s.female_ratio,
s.gzd,
s.yldx,
s.byl,
s.stszy,
s.is_strengthen,
s.tags
FROM yx_school s
LEFT JOIN yx_school_child sc ON s.id = sc.school_id
LEFT JOIN yx_school_major sm ON sm.school_code = sc.school_code
where 1=1 AND s.is_ys = 1
<if test="qvo.schoolName!=null and qvo.schoolName!=''">
AND s.school_name like concat('%',#{qvo.schoolName},'%')
</if>
<!--<if test="qvo.province!=null and qvo.province!=''">
AND s.province like concat('%',#{qvo.province},'%')
</if>
<if test="qvo.institutionType!=null and qvo.institutionType!=''">
AND s.institution_type = #{qvo.institutionType}
</if>-->
<if test="qvo.schoolNatureList!=null and qvo.schoolNatureList.size>0">
AND s.school_nature in
<foreach collection="qvo.schoolNatureList" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<if test="qvo.schoolType!=null and qvo.schoolType!=''">
<choose>
<when test="qvo.schoolType=='普通本科'">
AND s.school_type like '%本科%'
</when>
<when test="qvo.schoolType=='高职高专'">
AND s.school_type like '%高职高专%'
</when>
<otherwise>
AND s.school_nature = #{qvo.schoolType}
</otherwise>
</choose>
</if>
<if test="qvo.addressList!=null and qvo.addressList.size>0">
AND s.province in
<foreach collection="qvo.addressList" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<if test="qvo.schoolNatureList!=null and qvo.schoolNatureList.size>0">
AND s.school_nature in
<foreach collection="qvo.schoolNatureList" index="index" item="b" open="(" separator="," close=")">
#{b}
</foreach>
</if>
<if test="qvo.tagsList!=null and qvo.tagsList.size>0">
<if test="qvo.tagsList.contains('985')">
AND s.is985 = '1'
</if>
<if test="qvo.tagsList.contains('211')">
AND s.is211 = '1'
</if>
<if test="qvo.tagsList.contains('双一流')">
AND s.sfsyl ='双一流'
</if>
<if test="qvo.tagsList.contains('全国重点大学')">
AND s.gzsz = '国重点'
</if>
<if test="qvo.tagsList.contains('强基计划')">
AND s.is_strengthen = '1'
</if>
</if>
<if test="qvo.institutionTypeList!=null and qvo.institutionTypeList.size>0">
AND s.institution_type in
<foreach collection="qvo.institutionTypeList" index="index" item="b" open="(" separator="," close=")">
#{b}
</foreach>
</if>
<if test="qvo.majorCode!=null and qvo.majorCode!=''">
AND sm.major_code = #{qvo.majorCode}
</if>
GROUP BY sc.school_code
ORDER BY field( COALESCE(sm.batch,'null'), '提前批', '本科A段', '本科B段', '本科', '高职高专','null')
</select>
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.yx.mapper.YxSchoolMasterDegreeMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.yx.mapper.YxVipSkuMapper">
</mapper>

View File

@ -16,9 +16,8 @@
<select id="myVolunteerList" resultType="org.jeecg.modules.art.dto.RecommendMajorDTO">
SELECT
s.school_name,
sc.school_name,
sm.school_code,
s.institution_code as institutionCode,
sm.batch as batch,
sm.enrollment_code as enrollmentCode,
s.province as province,
@ -31,7 +30,8 @@
sm.tuition as studyCost
FROM yx_school_major sm
LEFT JOIN yx_major m ON m.major_code = sm.major_code
LEFT JOIN yx_school s ON s.school_code = sm.school_code
LEFT JOIN yx_school_child sc ON sc.school_code = sm.school_code
LEFT JOIN yx_school s ON s.id = sc.school_id
WHERE 1=1
<if test="queryvo.schoolName!=null and queryvo.schoolName!=''">
AND (s.school_name like concat('%',#{queryvo.schoolName},'%') or m.major_name like
@ -48,17 +48,18 @@
<select id="listDTOByVolunteerId" resultType="org.jeecg.modules.yx.dto.VolunteerRecordDTO">
SELECT vr.id,
vr.indexs,
s.school_name,
s.institution_code as institutionCode,
vr.major_code,
vr.school_code,
vr.enrollment_code,
vr.enroll_probability,
vr.student_converted_score,
vr.batch as batch,
sc.school_name,
s.province as province,
s.school_nature as propertyName,
s.institution_type as institutionType,
sm.school_code,
sm.major_code,
sm.major_name,
sm.batch as batch,
sm.category as category,
sm.enrollment_code as enrollmentCode,
sm.category,
sm.rules_enroll_probability as rulesEnrollProbability,
sm.probability_operator as probabilityOperator,
sm.cultural_control_line as culturalControlLine,
@ -71,11 +72,9 @@
FROM yx_volunteer_record vr
LEFT JOIN yx_school_major sm ON sm.major_code = vr.major_code AND sm.school_code = vr.school_code AND sm.enrollment_code = vr.enrollment_code
LEFT JOIN yx_major m ON m.major_code = sm.major_code
LEFT JOIN yx_school s ON s.school_code = sm.school_code
LEFT JOIN yx_school_child sc ON sc.school_code = sm.school_code
LEFT JOIN yx_school s ON s.id = sc.school_id
WHERE vr.volunteer_id = #{volunteerId}
<if test="cognitioPolyclinic!=null and cognitioPolyclinic!=''">
AND sm.category = #{cognitioPolyclinic}
</if>
ORDER BY vr.indexs asc
</select>
</mapper>

View File

@ -0,0 +1,14 @@
package org.jeecg.modules.yx.service;
import org.jeecg.modules.yx.entity.YxArwu;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description: 软科排名表
* @Author: jeecg-boot
* @Date: 2024-03-03
* @Version: V1.0
*/
public interface IYxArwuService extends IService<YxArwu> {
}

View File

@ -3,13 +3,23 @@ package org.jeecg.modules.yx.service;
import org.jeecg.modules.yx.entity.YxHistoryMajorEnroll;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import java.util.Map;
/**
* @Description: 历年录取数据表
* @Author: jeecg-boot
* @Date: 2023-08-27
* @Date: 2023-08-27
* @Version: V1.0
*/
public interface IYxHistoryMajorEnrollService extends IService<YxHistoryMajorEnroll> {
boolean exist(YxHistoryMajorEnroll yxHistoryMajorEnroll);
/**
* 以schoolCode分组根据schoolCode查询获取最大的那一年的历年录取信息数据
* @param schoolCodeList 院校编码
* @return Map<院校编码,数据>
*/
Map<String,YxHistoryMajorEnroll> getDataGroupBySchoolCodeAndMaxYear(List<String> schoolCodeList);
}

View File

@ -13,7 +13,7 @@ import java.util.List;
*/
public interface IYxHistoryScoreBatchService extends IService<YxHistoryScoreBatch> {
/**
* 依照 batch 字段 排序本科A段>本科B段>本科>
* 依照 batch 字段 排序本科A段>本科B段>本科>高职高
* @return
*/
public List<YxHistoryScoreBatch> listOrderByFieldBatch(YxHistoryScoreBatch yxHistoryScoreBatch);

View File

@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.yx.entity.YxHistoryScoreControlLine;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 历年各专业省控分数线
* @Author: jeecg-boot
@ -14,4 +16,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
public interface IYxHistoryScoreControlLineService extends IService<YxHistoryScoreControlLine> {
IPage<YxHistoryScoreControlLine> pageList(Page<YxHistoryScoreControlLine> page, YxHistoryScoreControlLine yxHistoryScoreControlLine);
/**
* 根据 年份,专业类别文理分科批次获取
*/
YxHistoryScoreControlLine getByProfessionalCategoryOfYear(int year,String professionalCategory,String category,String batch);
List<YxHistoryScoreControlLine> listByProfessionalCategoryOfYear(int year,String professionalCategory,String category);
}

View File

@ -1,6 +1,7 @@
package org.jeecg.modules.yx.service;
import org.jeecg.modules.art.dto.ArtMiniMajorDTO;
import org.jeecg.modules.art.dto.RecommendMajorDTO;
import org.jeecg.modules.art.vo.QueryRecommendMajorVO;
import org.jeecg.modules.yx.entity.YxMajor;
import com.baomidou.mybatisplus.extension.service.IService;
@ -18,4 +19,6 @@ public interface IYxMajorService extends IService<YxMajor> {
YxMajor findByMajorCode(String majorCode);
List<ArtMiniMajorDTO> miniMajorList(QueryRecommendMajorVO queryRecommendMajorVO);
List<RecommendMajorDTO> schoolMajorList(QueryRecommendMajorVO queryRecommendMajorVO);
}

View File

@ -0,0 +1,17 @@
package org.jeecg.modules.yx.service;
import org.jeecg.modules.yx.entity.YxOrder;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 订单表
* @Author: jeecg-boot
* @Date: 2024-02-23
* @Version: V1.0
*/
public interface IYxOrderService extends IService<YxOrder> {
public List<YxOrder> findListByPaymentUserId(String paymentUserId);
}

View File

@ -0,0 +1,14 @@
package org.jeecg.modules.yx.service;
import org.jeecg.modules.yx.entity.YxSchoolChild;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description: 子级院校表
* @Author: jeecg-boot
* @Date: 2024-02-20
* @Version: V1.0
*/
public interface IYxSchoolChildService extends IService<YxSchoolChild> {
}

View File

@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.yx.entity.YxUserScore;
import java.util.List;
import java.util.Map;
/**
* @Description: 学校专业关联表
@ -54,4 +55,29 @@ public interface IYxSchoolMajorService extends IService<YxSchoolMajor> {
* 根据majorCode获取列表数据
*/
List<YxSchoolMajor> listByMajorCode(String majorCode);
ArtRecommendMajorBaseDTO recommendMajorCount(QueryRecommendMajorVO queryRecommendMajorVO);
/**
* 根据 school_code分组获取 总的招生计划数
* @param professionalCategory 专业类别
* @param schoolCodeList 院校编码list
* @return Map<院校编码,计划数>
*/
Map<String, Integer> getSchoolMajorPlanSumByTypeAndCode(String professionalCategory, List<String> schoolCodeList);
/**
* 智能推荐
*/
ArtRecommendMajorBaseDTO aiAutoRecommendMajor(QueryRecommendMajorVO queryRecommendMajorVO);
/**
* 将没有计算规则的数据根据最近一年的录取信息更新
*/
void updateRulesEnrollProbabilityByOldLastYearData();
/*
计算录取率
*/
void recommendMajorListSetEnrollProbability(List<RecommendMajorDTO> recommendMajorList, YxUserScore activeCurrentUserScore);
}

View File

@ -0,0 +1,14 @@
package org.jeecg.modules.yx.service;
import org.jeecg.modules.yx.entity.YxSchoolMasterDegree;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description: 院校硕士研究生信息
* @Author: jeecg-boot
* @Date: 2024-03-03
* @Version: V1.0
*/
public interface IYxSchoolMasterDegreeService extends IService<YxSchoolMasterDegree> {
}

View File

@ -4,20 +4,37 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import org.jeecg.modules.art.dto.ArtHotSchoolDTO;
import org.jeecg.modules.art.dto.ArtSchoolDTO;
import org.jeecg.modules.art.vo.QueryRecommendMajorVO;
import org.jeecg.modules.mini.dto.MiniSchoolDTO;
import org.jeecg.modules.yx.entity.YxSchool;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 学校信息表
* @Author: ZhouWenTao
* @Date: 2023-08-19
* @Date: 2023-08-19
* @Version: V1.0
*/
public interface IYxSchoolService extends IService<YxSchool> {
List<YxSchool> oldList();
//PC前台端==================================================
/**
* PC前台端-院校列表查询
*/
IPage<ArtSchoolDTO> search(QueryRecommendMajorVO queryRecommendMajorVO);
ArtSchoolDTO findBySchoolCode(String schoolCode);
ArtSchoolDTO getArtSchoolInfoBySchoolCode(String schoolCode);
ArtHotSchoolDTO hotList();
//========================================================
//小程序代码=================================================
/**
* 小程序端-院校列表查询
*/
IPage<MiniSchoolDTO> miniSchoolSearch(QueryRecommendMajorVO queryRecommendMajorVO);
MiniSchoolDTO getMiniSchoolInfoBySchoolCode(String schoolCode);
//小程序代码=================================================
}

View File

@ -3,6 +3,8 @@ package org.jeecg.modules.yx.service;
import org.jeecg.modules.yx.entity.YxScoreSegment;
import com.baomidou.mybatisplus.extension.service.IService;
import java.math.BigDecimal;
/**
* @Description: 分数段位表
* @Author: jeecg-boot
@ -10,5 +12,13 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @Version: V1.0
*/
public interface IYxScoreSegmentService extends IService<YxScoreSegment> {
/**
* 24年成绩换算为23年
* @param score 当前专业分
* @param professionalCategory 专业类别
* @param professionalCategoryChild 子级专业类别
* @param province 省份
* @return
*/
public YxScoreSegment checkOldYearScore(String nowYear,BigDecimal score, String professionalCategory,String professionalCategoryChild, String province);
}

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